如何使用jQuery禁用表单内的所有<input />?

时间:2009-09-13 05:05:24

标签: jquery forms

<form id="target">
....
</form>

8 个答案:

答案 0 :(得分:253)

在旧版本中,您可以使用attr。从jQuery 1.6开始,您应该使用prop代替:

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

禁用'target'中的所有表单元素。见:input

  

匹配所有输入,textarea,select和按钮元素。

如果您只想要<input>元素:

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

答案 1 :(得分:37)

以上示例在技术上是不正确的。根据最新的jQuery,使用prop()方法应该用于禁用等事情。 See their API page.

要禁用'target'中的所有表单元素,请使用:input选择器匹配所有input,textarea,select和button元素。

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

如果您只想要这些元素,请使用它。

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

答案 2 :(得分:14)

更简洁的方法是使用他们的选择器引擎。 因此,要禁用div或表单父级中的所有表单元素。

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

答案 3 :(得分:8)

要禁用所有表单,只需写入:

jQuery 1.6 +

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

jQuery 1.5及以下

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

答案 4 :(得分:8)

你可以添加

 <fieldset class="fieldset">

然后你可以打电话

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

答案 5 :(得分:4)

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

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

答案 6 :(得分:1)

您可以这样做:

//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);
}

答案 7 :(得分:-1)

Gnarf

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