2010-09-05 66 views
2
$(function() { 
    function f1() { 
     if (this.checked) { 
      $('select[name=two]').removeAttr('disabled'); 
     } else { 
      $('select[name=two]').attr('disabled', true); 
     } 
    } 
    $('input[name=one]').change(f1).triggerHandler('change'); 
    $('.reset').click(function() { 
     $('input[name=one]').removeAttr('checked').end().click(f1); 
    }) 
}); 

...幾乎可以工作。請檢查小提琴here表格重置導致問題(jQuery)

但問題是:

  1. 檢查從下拉菜單中 '一',然後選擇 '二'。
  2. 點擊'重置'。
  3. 再次檢查'one'並嘗試從下拉列表中選擇'two'。

自動禁用下拉菜單!

非常感謝您的幫助!

+0

不是一個直接的答案,但是這對你正在做的事情感覺有點太複雜,尤其是,如果形式在未來增長。也許存儲init。使用clone()方法會更好:http://jsfiddle.net/6HGsP/ – 2010-09-05 03:34:47

回答

2

您應該在重置期間觸發更改處理程序。通過

$('input[name=one]').removeAttr('checked').triggerHandler('change'); 

Here's a new fork更換

$('input[name=one]').removeAttr('checked').end().click(f1); 

+0

PERFECT。謝謝! :) – 3zzy 2010-09-05 03:31:23

+0

不客氣。 – BalusC 2010-09-05 03:32:18