removeAttr()不删除IE中的"disabled"属性

Mar*_*lis 24 jquery internet-explorer

var disableSelection = function(){
    $("#elementId").attr("disabled","disabled");    
};

var enableSelection = function(){
    $("#elementId").removeAttr("disabled");
};
Run Code Online (Sandbox Code Playgroud)

我有以下要求:

  1. 禁用SELECT元素以限制用户选择选项
  2. disabled SELECT元素已经选择了一些OPTION元素
  3. on submit事件启用禁用SELECT元素以保存所选值

添加属性"禁用"适用于IE.然而,当我尝试使用jQuery revomeAttr()方法删除属性时,而不是删除属性:

  1. 方法将"disabled"属性添加到先前启用的SELECT元素
  2. 方法不会删除"已禁用"属性

Jon*_*Jon 56

使用.prop而不是.attr影响元素的禁用状态:

var disableSelection = function(){
    $("#elementId").prop("disabled", true);    
};

var enableSelection = function(){
    $("#elementId").prop("disabled", false);
};
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请参阅.prop()vs .attr().

  • 我知道这是在12年发布的,但现在(2015年),如果你使用IE11,`prop`解决方案无法解决问题.对此有任何更新? (6认同)