$input.disabled = true;

or

$input.disabled = "disabled";

哪一种是标准方式?相反,如何启用禁用的输入?


当前回答

对输入类型禁用true:

如果是特定的输入类型(例如文本类型输入)

$("input[type=text]").attr('disabled', true);

对于所有类型的输入类型

$("input").attr('disabled', true);

其他回答

您可以使用jQuery prop()方法动态禁用或启用表单元素或控件。prop()方法需要jQuery1.6及更高版本。

例子:

<script type="text/javascript">
        $(document).ready(function(){
            $('form input[type="submit"]').prop("disabled", true);
            $(".agree").click(function(){
                if($(this).prop("checked") == true){
                    $('form input[type="submit"]').prop("disabled", false);
                }
                else if($(this).prop("checked") == false){
                    $('form input[type="submit"]').prop("disabled", true);
                }
            });
        });
    </script>
$("input")[0].disabled = true;

or

$("input")[0].disabled = false;

有许多方法可以使用它们来启用/禁用任何元素:

方法1

$("#txtName").attr("disabled", true);

方法2

$("#txtName").attr("disabled", "disabled");

如果使用jQuery 1.7或更高版本,请使用prop(),而不是attr()。

$("#txtName").prop("disabled", "disabled");

如果您希望启用任何元素,则只需执行与禁用该元素相反的操作即可。然而,jQuery提供了另一种删除任何属性的方法。

方法1

$("#txtName").attr("disabled", false);

方法2

$("#txtName").attr("disabled", "");

方法3

$("#txtName").removeAttr("disabled");

同样,如果使用jQuery 1.7或更高版本,请使用prop(),而不是attr()。这就是使用jQuery启用或禁用任何元素的方式。

2018年更新:

现在不需要jQuery了,因为document.querySelector或document.querySelectedAll(对于多个元素)做的工作与$几乎完全相同,加上更明确的getElementById、getElementsByClassName、getElementByTagName

禁用“输入复选框”类的一个字段

document.querySelector('.input-checkbox').disabled = true;

或多个元素

document.querySelectorAll('.input-checkbox').forEach(el => el.disabled = true);

2018,无JQuery(ES6)

禁用所有输入:

[...document.querySelectorAll('input')].map(e => e.disabled = true);

禁用id=“my input”的输入

document.getElementById('my-input').disabled = true;

问题是JQuery,它只是仅供参考。