使用jQuery禁用/启用输入?
$input.disabled = true;
要么
$input.disabled = "disabled";
标准的方式是什么? 而且,相反,您如何启用禁用的输入?
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中的“属性”对应物那样“去除”它们
只是为了新的惯例和使它适应未来(除非事情发生巨大的变化与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
链接地址: http://www.djcxy.com/p/531.html