JQuery Attr 可见,不适用于 IE7 或更低版本



我有一个页面,我在其中启用并使用JQuery使按钮可见。这是我正在使用的:

//disable save until validated
$("#btnSave").attr("disabled", true);

组件验证完成后,我启用保存按钮:

$("#btnSave").attr("disabled", false);

问题:它适用于Chrome,FF,IE8 +,但不适用于IE7及更低版本(惊讶:O)。是否有任何针对此问题的黑客或解决此问题的方法。

使用 prop 而不是 attr

$("#btnSave").prop("disabled", false);

如果你想使用attr(虽然我不想,但为了完成)

$('#btnSave').attr('disabled', 'disabled')

直接取自文档:

"检索和更改 DOM 属性,例如 表单元素的选中、选中或禁用状态,使用 .prop()方法。"

正如每个人都说过的,你需要使用$("#btnSave").prop("disabled", false);

但是为什么?因为 IE8 只接受禁用的属性,因为:

<button disabled="disabled">

您指示 jQuery 将属性的文本值设置为 "true",结果是:

<button disabled="true">

但是,使用 .prop ,jQuery 将自动为该属性设置正确的值,无论是选中/选择/禁用,还是只是文本属性值。

示例

  $(function(){
    $('#button1').prop('disabled', true);
       // $('#button1').prop('disabled', null);//if you want to enable it
    });

这是一个jsfiddle。

最新更新