IE中的输入显示已禁用,但未禁用

时间:2012-06-07 15:44:02

标签: jquery internet-explorer-8 disabled-input

我的页面上有一个输入(按钮),如下所示:

<input id="the-button" type="submit" class="btn" value="Click me!">

我正在覆盖表单提交操作,因此我可以在实际提交表单之前检查一些内容。在执行此操作之前,我禁用了该按钮,因此用户不会再次单击该按钮,因此他们可以看到该页面正在运行。

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

如果我决定不提交表单,我会重新启用该按钮。

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

这在Chrome / Firefox中按预期工作,但在IE8中,按钮显示被禁用,但您仍然可以点击它。所需的行为是启用,但在IE中显示为灰色。

2 个答案:

答案 0 :(得分:7)

如果您使用的是jQuery 1.6+,那么您应该使用.prop,因为'disabled'是element的属性

$("#the-button").prop("disabled", true);
$("#the-button").prop("disabled", false);

http://api.jquery.com/prop/

答案 1 :(得分:2)

正如Wirey所说的那样是使用prop的最佳方式,但是如果你坚持使用旧版本的jQuery,你可以“镜像”IE的语句,例如:

$("#the-button").attr("disabled", ""); // Enabled
$("#the-button").attr("disabled", "disabled"); // Disabled

ReadOnly也是如此(显然在文本框等上)

$("#the-button").attr("readonly", ""); // Read Write
$("#the-button").attr("readonly", "readonly"); // Read Only