Javascript JS-jQuery-使用复选框启用或禁用表单字段

Javascript JS-jQuery-使用复选框启用或禁用表单字段,javascript,jquery,forms,Javascript,Jquery,Forms,我想在单击复选框时禁用输入框和按钮 我的标记: <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"

我想在单击复选框时禁用输入框和按钮

我的标记:

<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>
好吧——显然,如果我在这里问的话——它不起作用:——)

小提琴:

还有一个额外的问题——是否可以只使用输入的名称,而从标记中忽略ID

更新I-工作解决方案:

额外问题-是否可以只使用输入的名称,而从标记中忽略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', 'disabled');
相反

我的第二个猜测也是错误的,问题是:

.prop('disabled', true);
您是否尝试过:

#upload_image:input
.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);
    })
});
额外问题-是否可以只使用输入的名称,而从标记中忽略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', 'disabled');
相反

我的第二个猜测也是错误的,问题是:

.prop('disabled', true);
您是否尝试过:

#upload_image:input
.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);
    })
});

我想知道你的答案,但试着用小提琴——这似乎不起作用;你能回顾一下我的最新建议吗?谢谢-效果很好。唯一的问题是,当加载文档时,函数并没有控制它。我添加了一个“disabled”属性作为默认值(请参见此处:)。顺便说一句,你知道你可以通过点击“更新”保存修改,然后在这里发布新的链接吗?你不应该使用.prop作为最佳代码实践吗$(elem).prop(“checked”)我不确定在我写这个答案时是否存在
prop
:-)它可能存在,但只是还没有成为标准实践。不管怎样,我都会更新我的答案。我很想知道你的答案,但试着用小提琴——这似乎不起作用。我已经更新了我的答案;你能回顾一下我的最新建议吗?谢谢-效果很好。唯一的问题是,当加载文档时,函数并没有控制它。我添加了一个“disabled”属性作为默认值(请参见此处:)。顺便说一句,你知道你可以通过点击“更新”保存修改,然后在这里发布新的链接吗?你不应该使用.prop作为最佳代码实践吗$(elem).prop(“checked”)我不确定在我写这个答案时是否存在
prop
:-)它可能存在,但只是还没有成为标准实践。不管怎样,我都会更新我的答案。