var disableSelection = function(){
$("#elementId").attr("disabled","disabled");
};
var enableSelection = function(){
$("#elementId").removeAttr("disabled");
};
我有以下要求:
添加属性“已禁用”适用于IE。 然而,当我尝试使用jQuery revomeAttr()方法删除属性时,而不是删除属性:
答案 0 :(得分:56)
var disableSelection = function(){
$("#elementId").prop("disabled", true);
};
var enableSelection = function(){
$("#elementId").prop("disabled", false);
};
有关详细信息,请参阅.prop() vs .attr()。
答案 1 :(得分:4)
您可以改用removeProp('disabled')
。它虽然removeAttr('disabled')
没有,但对我有用。
答案 2 :(得分:1)
Jquery Docs说,关于.removeProp():
注意:请勿使用此方法删除本机属性,例如checked,> disabled或selected。这将完全删除该属性,并且一旦>删除,就不能再次添加到元素。使用.prop()将这些属性>设置为false。
附加说明:
在版本9之前的Internet Explorer中,使用.prop()将DOM元素>属性设置为除简单原始值(数字,字符串或>布尔值)以外的任何内容都可能导致内存泄漏(如果属性为在从文档中删除DOM元素之前,不会删除(使用> .removeProp())。要安全地>在没有内存泄漏的DOM对象上设置值,请使用.data()。