jQuery的奇怪问题

时间:2011-01-18 20:58:24

标签: javascript jquery

我对jQuery有一个非常奇怪的问题。

问题:

$("#button-prev").attr("disabled", "disabled");

这不起作用。如果我查看Firebug,我看到disabled =“”作为元素属性

但是例如这个

$("#button-prev").attr("disablea", "disabled");

按预期工作。任何人都知道它可能是什么?

4 个答案:

答案 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

更容易的少数几个场合之一