2011-01-09 34 views
1

考慮以下問題,如何在點擊時啓用禁用的元素?如何爲禁用對象使用mousedown/click事件?

$("element").click(function(){ 
    //enable element 
}); 
+2

是正在元素「啓用」與被點擊的相同? – user113716 2011-01-09 00:53:56

+0

可能的重複:http://stackoverflow.com/questions/3100319/jquery-event-on-a-disabled-input – 2011-01-09 00:56:58

回答

3

我能想出的最好的是:

$('label').click(
    function(){ 
     $(this).next(':disabled').removeAttr('disabled'); 
    }); 

由於禁用元素本身並沒有,至少在Chrome 8/Ubuntu的10.10,響應單擊事件。

當然,假定label在禁用元素之前,並且不在當前形式中檢查標籤是否對應於下一個禁用的元素。

JS Fiddle demo of the above


編輯修訂的辦法,所以點擊label只會影響相關input

$('label').click(
    function(){ 
     var relevantInput = $(this).attr('for'); 
     $('#' + relevantInput) 
      .removeAttr('disabled'); 
    }); 

JS Fiddle demo