我想在单击复选框时禁用输入框和按钮。
我的标记:
<h4>Random or Not </h4>
<!-- Use Random Image -->
<label><input name="o99_aufu_options[o99_aufu_random]" id="o99_aufu_options[o99_aufu_random]" value="1" checked="checked" type="checkbox">Use Random Image ? <em></em></label><br>
<!-- If the above not checked - needs to be enabled -->
Upload Image <label for="upload_image"> <input id="upload_image" size="36" name="o99_aufu_options[o99_aufu_upload_image]" value="" type="text"> <input id="upload_image_button" value="Choose Image or upload" type="button"> </label>
jQuery:
if (jQuery('#o99_aufu_options[o99_aufu_random]').is(':checked')) {
jQuery('#upload_image :input').attr('disabled', true);
} else {
jQuery('#upload_image_button,#upload_image :input').removeAttr('disabled');
}
好吧 - 显然,如果我在这里问 - 它不起作用: - )
小提琴:
http://jsfiddle.net/obmerk99/6jFMf/3/
另外作为奖励问题 - 是否可以仅使用输入的名称进行此操作,从标记中省略ID?
更新我 - 工作解决方案:
答案 0 :(得分:3)
红利问题 - 是否可以仅使用输入的名称进行此操作,省略标记中的ID?
您可以在jQuery选择器中使用任何属性,包括名称:
$('[name="foo"])
由于你的名字有括号,你可能不得不逃避它们:
$('[name="o99_aufu_options\[o99_aufu_random\]"]')
如果需要,您还可以将它们限定为特定元素,或者将它们与其他选择器组合使用:
$('input.someClass[name="o99_aufu_options\[o99_aufu_random\]"]')
至于你的实际问题,我的第一个猜测......错误是你的问题是空白;你尝试过:
#upload_image:input
击> <击>而不是击>
我的第二个猜测也是错误的问题是:
.prop('disabled', true);
你试过了吗?
.prop('disabled', 'disabled');
击> <击> 撞击>
好吧,我实际上看着你的小提琴,有一些错误;这是一个有效的例子,请告诉我你是否有疑问,但希望这是不言自明的:
jQuery(function() {
jQuery('input[name="o99_aufu_options\[o99_aufu_random\]"]').click(function(){
var isChecked = jQuery(this).is(':checked') ;
jQuery('#upload_image:input').prop('disabled', isChecked? 'disabled' : null);
})
});