2012-09-07 157 views
0

我有一個使用獨佔複選框的表單(它是一個WordPress插件,聯繫人7,fyi)。有兩個複選框選項,是和否。如果他們檢查是,我有一個文本字段,我啓用(我已經禁用它默認情況下)。如果他們檢查不是,我有第二個獨佔複選框與我啓用(也是默認情況下)2個框。正如你猜測的那樣,當用戶選擇是時,它也應該禁用第二個複選框。如果他們選擇否,我希望文本字段返回到禁用狀態。jQuery複選框禁用/啓用基於複選框值的輔助輸入

所以我有這個工作,除了它不承認改變事件;換句話說,如果我選中yes,它將啓用文本字段,但是如果我然後檢查no,它不會更新其他輸入元素的關聯狀態。我必須取消選中否,然後重新檢查它,以便它執行該功能。這裏是我的jQuery代碼片段:

$(document).ready(function() { 
    $('p#myTextFieldHolder input:text').val('').attr('disabled', true); 
    $('#mySecondCheckBoxHolder input:checkbox').attr('disabled', true); 

    $("#myCheckBoxHolder input").change(function() { 

     if ($(":checked").val() == "If yes, what is the estimated closing date?") { 

      $('p#myTextFieldHolder input:text').val('').attr('disabled', false); 
      $('#mySecondCheckBoxHolder input:checkbox').attr('disabled', true); 
     } else if ($(":checked").val() == "No:") { 
      $('p#myTextFieldHolder input:text').val('').attr('disabled', true); 
      $('#mySecondCheckBoxHolder input:checkbox').attr('disabled', false); 
     } else { 
      $('p#myTextFieldHolder input:text').val('').attr('disabled', true); 
      $('#mySecondCheckBoxHolder input:checkbox').attr('disabled', true); 
     } 
    }) 
});​ 

有關如何解決這個問題並糾正它的任何建議?謝謝。

+0

這將是很好,如果你可以發表你的標記.. –

+0

所以只有一個複選框,可以同時進行檢查? –

回答

2

的你問什麼Here is an example,希望它有助於

$(function(){ 
    $('#chkboxes input:checkbox').on('change', function(){ 
     if($(this).is(':checked')) 
     { 
      if($(this).attr('id')=='yes') 
      {   
       $('#txt1').prop('disabled', false); 
       $('#chkno input:checkbox').prop('disabled', true).prop('checked', false); 
       $('#no').prop('checked', false); 
      } 
      else 
      { 
       $('#txt1').val('').prop('disabled', true); 
       $('#chkno input:checkbox').prop('disabled', false); 
       $('#yes').prop('checked', false);    
      } 
     } 
    }); 
});​