$input.disabled = true;
或者
$input.disabled = "disabled";
哪个是标准方式?而且,相反,您如何启用禁用的输入?
$input.disabled = true;
或者
$input.disabled = "disabled";
哪个是标准方式?而且,相反,您如何启用禁用的输入?
要更改disabled
属性,您应该使用该.prop()
函数。
$("input").prop('disabled', true);
$("input").prop('disabled', false);
该.prop()
功能不存在,但.attr()
类似:
设置禁用属性。
$("input").attr('disabled','disabled');
要再次启用,正确的方法是使用 .removeAttr()
$("input").removeAttr('disabled');
你总是可以依赖实际的 DOM 对象,如果你只处理一个元素,它可能比其他两个选项快一点:
// assuming an event handler thus 'this'
this.disabled = true;
使用.prop()
or.attr()
方法的优点是您可以为一组选定的项目设置属性。
注意:在 1.6 中,有一种.removeProp()
方法听起来很像removeAttr()
,但它不应该用于本机属性,例如'disabled'
文档中的摘录:
注意:请勿使用此方法删除本机属性,例如已选中、已禁用或已选中。这将完全删除该属性,一旦删除,将无法再次添加到元素中。使用 .prop() 将这些属性设置为 false。
事实上,我怀疑这个方法有很多合法的用途,布尔props是以这样一种方式完成的,你应该将它们设置为 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');
});
// Disable #x
$( "#x" ).prop( "disabled", true );
// Enable #x
$( "#x" ).prop( "disabled", false );
有时您需要禁用/启用表单元素,如 input 或 textarea。Jquery 通过将禁用属性设置为“禁用”来帮助您轻松实现此目的。例如:
//To disable
$('.someElement').attr('disabled', 'disabled');
要启用禁用元素,您需要从此元素中删除“禁用”属性或清空它的字符串。例如:
//To enable
$('.someElement').removeAttr('disabled');
// OR you can set attr to ""
$('.someElement').attr('disabled', '');
参考:http : //garmoncheg.blogspot.fr/2011/07/how-to-disableenable-element-with.html
$("input")[0].disabled = true;
或者
$("input")[0].disabled = false;
您可以将其放在代码中的全局位置:
$.prototype.enable = function () {
$.each(this, function (index, el) {
$(el).removeAttr('disabled');
});
}
$.prototype.disable = function () {
$.each(this, function (index, el) {
$(el).attr('disabled', 'disabled');
});
}
然后你可以写这样的东西:
$(".myInputs").enable();
$("#otherInput").disable();