javascript - vue禁用按钮 - 禁止按钮点击




使用jQuery禁用/启用输入? (8)

jQuery 1.6+

要更改disabled属性,您应该使用.prop()函数。

$("input").prop('disabled', true);
$("input").prop('disabled', false);

jQuery 1.5及以下版本

.prop()函数不存在,但.attr()作用类似:

设置禁用的属性。

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

要再次启用,正确的方法是使用.removeAttr()

$("input").removeAttr('disabled');

在任何版本的jQuery中

如果您只处理一个元素,则您始终可以依赖实际的DOM对象,并且可能比其他两个选项快一点:

// assuming an event handler thus 'this'
this.disabled = true;

使用.prop().attr()方法的优点是可以为一堆选定项目设置属性。

注意: 1.6中有一个.removeProp()方法,听起来很像removeAttr() ,但它不应该用于像'disabled'这样'disabled'本地属性'disabled'摘自文档:

注意:不要使用此方法删除本机属性,如选中,禁用或选中。 这将完全删除该属性,一旦删除,不能再添加到元素。 使用.prop()将这些属性设置为false。

事实上,我怀疑这种方法有很多合理用途,布尔型道具的设置方式应该是将它们设置为false,而不是像1.5中的“属性”对应物那样“去除”它们

$input.disabled = true;

要么

$input.disabled = "disabled";

标准的方式是什么? 而且,相反,您如何启用禁用的输入?


2018年更新:

现在不需要jQuery了,自从document.querySelectordocument.querySelectorAll (用于多个元素)完成与$完全相同的工作以及更加明确的工作之后, getElementByIdgetElementsByClassNamegetElementsByTagName

禁用“input-checkbox”类的一个字段

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

或多个元素

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

使用:

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

只是为了新的惯例和使它适应未来(除非事情发生巨大的变化与ECMA6(????):

$(document).on('event_name', '#your_id', function() {
    $(this).removeAttr('disabled');
});

$(document).off('event_name', '#your_id', function() {
    $(this).attr('disabled','disabled');   
});

如果您只想反转当前状态(如切换按钮行为):

$("input").prop('disabled', ! $("input").prop('disabled') );

我使用@gnarf答案并将其添加为函数

   $.fn.disabled = function (isDisabled) {
     if (isDisabled) {
       this.attr('disabled', 'disabled');
     } else {
       this.removeAttr('disabled');
     }
   };

然后像这样使用

$('#myElement').disable(true);

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

要么

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

<html>
<body>

Name: <input type="text" id="myText">



<button onclick="disable()">Disable Text field</button>
<button onclick="enable()">Enable Text field</button>

<script>
function disable() {
    document.getElementById("myText").disabled = true;
}
function enable() {
    document.getElementById("myText").disabled = false;
}
</script>

</body>
</html>




html-input