我已经彻底找到了答案但是一切似乎只给了我一半我需要的东西,这就是我设法让这个开始的原因。我正在尝试做的是在选中复选框时启用下拉菜单,但另外禁用它。我不太确定如何在标签中调用该函数,但是我再也不确定它是否正常工作。
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 :(得分:0)
该功能正确,但名称不正确。此外,如果您使用的是jQuery,则不应直接在html标记上使用onchange
属性。
在你的小提琴中,在包含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(){
即可。
答案 1 :(得分: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");
}
});
答案 2 :(得分: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');
}
});