2011-01-09 36 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