我对jQuery有一个非常奇怪的问题。
问题:
$("#button-prev").attr("disabled", "disabled");
这不起作用。如果我查看Firebug,我看到disabled =“”作为元素属性
但是例如这个
$("#button-prev").attr("disablea", "disabled");
按预期工作。任何人都知道它可能是什么?
答案 0 :(得分:2)
disabled
是布尔属性。因此,如果设置了truthy
值就足够了。
<button disabled>foo</button>
在大多数浏览器中都可以使用。您需要使用
完全删除该属性$('#button-prev').removeAttr('disabled');
或将其明确设置为false / 0
$('#button-prev').attr('disabled', false);
这是一个常见的错误,非常令人困惑,请考虑像
之类的电话$(element).attr('disabled', 'false');
也会禁用元素。由于您传递了string value
truthy
值。
更多信息:http://www.w3.org/TR/html401/interact/forms.html#h-17.12.1
答案 1 :(得分:1)
如果按钮 已禁用,您是否尝试过?我只是尝试使用此页面上的“发布你的答案”按钮,虽然Firebug没有在HTML选项卡中显示任何内容,但DOM选项卡显示已设置disabled属性(请注意,我无法点击)
答案 2 :(得分:0)
我相信那个attr是“真实的”或“假的”...... 尝试:$(“#button-prev”)。attr(“disabled”,true); 确保“button-prev”是按钮的ID。
答案 3 :(得分:0)
在简单的'JavaScript中,它就像
一样简单document.getElementById('button-prev').disabled = true;
这是我认为不使用jQuery
更容易的少数几个场合之一