0

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

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

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

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

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

4

4 回答 4

4

使用prop代替attr

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

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

$('#btnSave').attr('disabled', 'disabled')
于 2013-09-19T13:27:05.560 回答
3

直接取自文档

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

于 2013-09-19T13:26:58.343 回答
0

正如大家所说,你需要使用$("#btnSave").prop("disabled", false);

但为什么?因为 IE8 只接受 disabled 属性为:

<button disabled="disabled">

您指示 jQuery 将属性的字面值设置为“true”,结果是:

<button disabled="true">

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

于 2013-09-19T13:29:48.317 回答
0

例子

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

这是一个jsfiddle

于 2013-09-19T13:30:05.160 回答