使用jQuery禁用/启用输入?
2022-08-29 21:53:21
$input.disabled = true;
或
$input.disabled = "disabled";
这是标准方法吗?相反,如何启用禁用的输入?
$input.disabled = true;
或
$input.disabled = "disabled";
这是标准方法吗?相反,如何启用禁用的输入?
要更改属性,应使用 .prop()
函数。disabled
$("input").prop('disabled', true);
$("input").prop('disabled', false);
该函数不存在,但 .attr()
执行类似的操作:.prop()
设置禁用的属性。
$("input").attr('disabled','disabled');
要再次启用,正确的方法是使用 .removeAttr()
$("input").removeAttr('disabled');
您始终可以依赖实际的 DOM 对象,如果您只处理一个元素,则可能比其他两个选项快一点:
// assuming an event handler thus 'this'
this.disabled = true;
使用 or 方法的优点是可以为一堆选定项设置属性。.prop()
.attr()
注意:在 1.6 中,有一个 .removeProp()
方法听起来很像 ,但它不应该用于本机属性,如文档摘录:removeAttr()
'disabled'
注: 请勿使用此方法删除本机属性,如选中、禁用或选定。这将完全删除该属性,并且一旦删除,就无法再次添加到元素中。请改用 .prop() 将这些属性设置为 false。
事实上,我怀疑这种方法有很多合法的用途,布尔道具是以这样的方式完成的,你应该将它们设置为false,而不是像1.5中的“属性”对应物一样“删除”它们。
只是为了新的惯例,并使其适应未来(除非ECMA6(????)发生巨大变化):
$(document).on('event_name', '#your_id', function() {
$(this).removeAttr('disabled');
});
和
$(document).off('event_name', '#your_id', function() {
$(this).attr('disabled','disabled');
});