2010-06-24 59 views
2
$(this).closest("fieldset").find("input:not(:checkbox), select,textarea").attr('disabled', this.checked); 

与此我可以禁用输入,选择,textarea如何处理按钮?我可以禁用在jquery中使用像这样的按钮吗?

感谢

+0

你想上的按钮做什么呢?禁用它,还是想通过点击按钮来禁用所有输入? – jigfox 2010-06-24 16:49:01

+0

我需要禁用输入类型=“提交” – user354625 2010-06-24 17:06:37

+0

摇杆 - 您的代码应该禁用提交。我更新了我的示例以证明这一点。如果你想要,你可以在选择器中指定':submit',但如果你使用'input:not(:checkbox)'则不需要' – user113716 2010-06-24 17:07:54

回答

2

你的代码工作对我来说:

试试看:http://jsfiddle.net/JzKdx/2/(更新)

是你有一些具体的问题?

HTML (更新,包括提交按钮)

<fieldset> 

    <input type='checkbox' /> Click me 
    <br><br> 
    <input type='text' /> 
    <select> 
     <option>one</option> 
    </select> 
    <textarea> 
     sometext 
    </textarea> 

    <input type='submit' /> 

</fieldset> 

jQuery的

$(':checkbox').change(function() { 
    $(this).closest("fieldset") 
     .find("input:not(:checkbox), select,textarea") 
     .attr('disabled', this.checked); 
    });​ 
+0

是的,我确实看到了。 – user354625 2010-06-24 17:11:21

1

不太 - 只要残疾人属性存在,控制将被禁用。要重新启用该控件,您必须删除禁用的属性。事情是这样的:

var element = $(this).closest("fieldset").find("input:not(:checkbox), select,textarea"); 
if (this.checked) { 
    element.attr('disabled', 'disabled'); 
} else { 
    element.removeAttr('disabled'); 
} 
+0

这是一个很好的习惯,去除'disabled'属性,但不是我所需要的。设置真/假(这是OP在做什么)也应该工作。 – user113716 2010-06-24 16:46:53

+0

我需要disble type =“submit' user354625 2010-06-24 17:01:21

0

试试这个代码

$(this).closest("fieldset").find("input:not(:checkbox), select,textarea,button").attr('disabled', this.checked);

相关问题