2013-02-26 3 views
0

Я тщательно искал ответ, но все, кажется, только дает мне половину того, что мне нужно, так как мне удалось это начать. То, что я пытаюсь сделать, это включить выпадающее меню, когда флажок установлен, но в противном случае запретить его отключать. Я не уверен, как вызвать функцию в теге, но опять же я не уверен, что он работает.Включение раскрывающегося списка, если флажок установлен

function .onCheckChange() { 
    if ($("#partoption2").is(':checked')) { 
     $("#parttwoqty").attr('disabled', 'disabled'); 
     $("#partoption2").val("TRUE"); 
    } else { 
     $("#parttwoqty").attr('disabled'); 
     $("#partoption2").val("FALSE"); 
    } 
} 

Это скрипка: http://jsfiddle.net/xjn3Q/1/

Спасибо!

+0

Я еще не проверил вашу скрипку, но имя функции должно быть «onCheckChange», а не '.onCheckChange' (удалить период) – Steve

ответ

0

Я изменил вашу скрипку, вы можете увидеть результат здесь http://jsfiddle.net/xjn3Q/9/

var $checkBox = $('#partoption2'), 
$select = $('#parttwoqty'); 


$checkBox.on('change',function(e){ 
if ($(this).is(':checked')){ 
    $select.removeAttr('disabled'); 
}else{ 
    $select.attr('disabled','disabled'); 
} 

});

+0

Я начинаю jquery, поэтому постараюсь собрать это вместе с несколькими источниками , Спасибо, это работает! – stacykathryn

0

Функция верна, но имя нет. Также, если вы используете jQuery, вы не должны использовать атрибут onchange непосредственно в теге html.

В вашей скрипке, после включения библиотеки jQuery (1.8+), смените JS на это. Еще одна вещь, которую следует учитывать, - использование prop вместо attr.

$(function(){ 
    $("#partoption2").on('change',function() { 
    if (!$(this).is(':checked')) { 
     $("#parttwoqty").prop('disabled', 'disabled'); 
    } else { 
     $("#parttwoqty").prop('disabled', false); 
    } 
    }); 
}); 

Может быть, вам нужно отключить выбрать первый, так что появляется отключена, пока флажок не установлен, добавить $("#parttwoqty").prop('disabled', 'disabled'); после $(function(){ линии, чтобы сделать это.

0

Существует несколько проблем с вашим кодом, но я буду рассматривать только те, которые делают этот пример работы.

Прежде всего, в вашем jsFiddle вы используете jQuery, но никогда не загружаете его (с левой стороны).

Во-вторых, так как вы используете JQuery, почему бы не использовать щелчок обработчик JQuery, как это:

$('#partoption2').click(function() { 
    if ($("#partoption2").is(':checked')) { 
     $("#parttwoqty").attr('disabled', 'disabled'); 
     $("#partoption2").val("TRUE"); 
    } else { 
     $("#parttwoqty").attr('disabled', false); 
     $("#partoption2").val("FALSE"); 
    } 
}); 
Смежные вопросы