簡體   English   中英

JS-jQuery-啟用帶有復選框的禁用表單字段

[英]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?

更新我 -工作解決方案:

http://jsfiddle.net/obmerk99/6jFMf/20/

紅利問題-是否可以僅使用輸入的名稱執行此操作,而忽略標記中的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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM