【问题标题】:Re-enabling a disabled button [duplicate]重新启用禁用的按钮[重复]
【发布时间】:2014-09-27 05:11:01
【问题描述】:

如果我将按钮的disabled 属性设置为true,然后我想在一段时间后使用jQuery 启用它,为什么我不能将disabled 属性设置为@987654325 @ 与 jQuery?

HTML:

<form>
    <input id="myButton" type="submit" disabled="true" value="Submit"/>
</form>

jQuery:

setTimeout(EnableSubmit, 3000);

function EnableSubmit()
{
    $("#myButton").attr("disabled", "false");
}

JSFiddle:http://jsfiddle.net/TV7t4/

【问题讨论】:

    标签: jquery html


    【解决方案1】:

    您需要将其设置为布尔值false,而不是字符串"false",因此请去掉引号。

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

    }

    【讨论】:

    • 不要忘记.prop() 而不是.attr()。来自文档: .prop() 方法应该用于设置禁用和检查,而不是 .attr() 方法。
    【解决方案2】:

    使用.prop()false

    setTimeout(EnableSubmit, 3000);
    function EnableSubmit() {
        $("#myButton").prop("disabled", false);
    }
    

    jsFiddle example

    来自docs:应该使用 .prop() 方法来设置禁用和检查,而不是 .attr() 方法。

    【讨论】:

      【解决方案3】:

      disabled 属性的值无关紧要,只需将其设置为工作即可。

      尝试像这样完全删除属性:

      $("#myButton").removeAttr("disabled");
      

      【讨论】:

        【解决方案4】:
        $("#myButton").removeAttr('disabled');
        

        【讨论】:

          【解决方案5】:

          因为disabled 属性是一个布尔属性。无论其价值如何,它仅凭存在就起作用。我可以写disabled="I'm a broken paperclip",它仍然可以工作。

          试试:

          document.getElementById('myButton').disabled = true; // disable
          document.getElementById('myButton').disabled = false; // re-enable
          

          Vanilla JS 简单多了...

          【讨论】:

            【解决方案6】:

            我总是使用这个,它对我有用:

            $("#myButton").prop('disabled', false);
            

            另见:Disable/enable an input with jQuery?

            【讨论】:

              猜你喜欢
              • 2012-09-20
              • 2018-07-15
              • 1970-01-01
              • 2015-06-20
              • 1970-01-01
              • 2014-08-01
              • 1970-01-01
              • 2021-08-03
              • 1970-01-01
              相关资源
              最近更新 更多