[英]JS - jQuery - Enable Disable form fields with 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>
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?
更新我 -工作解決方案:
紅利問題-是否可以僅使用輸入的名稱執行此操作,而忽略標記中的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); }) });
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.