How to disable all <input > inside a form with jQuery?

<form id="target">
....
</form>
218491 次浏览

在旧版本中你可以使用 attr,而在 jQuery 1.6中你应该使用 prop:

$("#target :input").prop("disabled", true);

禁用“ target”中的所有表单元素。参见 :input:

匹配所有输入、文本区、选择和按钮元素。

如果只想要 <input>元素:

$("#target input").prop("disabled", true);

上面的例子在技术上是不正确的。根据最新的 jQuery,使用 prop()方法应该用于禁用

要禁用“ target”中的所有表单元素,请使用匹配所有输入、 textarea、 select 和按钮元素的: input 选择器。

$("#target :input").prop("disabled", true);

如果只需要元素,请使用这个。

$("#target input").prop("disabled", true);

另外,更简洁的方式是使用他们的选择器引擎。 因此,要禁用 div 或窗体父级中的所有窗体元素。

$myForm.find(':input:not(:disabled)').prop('disabled',true)

Gnarf给出了明确的答案(涵盖了对1.6版本的 jQuery api 的更改)

要禁用所有形式,只需写下:

JQuery 1.6 +

$("#form :input").prop("disabled", true);

JQuery 1.5及以下版本

$("#form :input").attr('disabled','disabled');

你可以加

 <fieldset class="fieldset">

然后你就可以打电话了

 $('.fieldset').prop('disabled', true);

使用这一行,您可以禁用表单中的任何输入字段

$('form *').prop('disabled', true);

你可以这样做:

//HTML BUTTON
<button type="button" onclick="disableAll()">Disable</button>


//Jquery function
function disableAll() {
//DISABLE ALL FIELDS THAT ARE NOT DISABLED
$('form').find(':input:not(:disabled)').prop('disabled', true);


//ENABLE ALL FIELDS THAT DISABLED
//$('form').find(':input(:disabled)').prop('disabled', false);
}