JQuery在IE7中启用/禁用提交按钮

时间:2011-08-29 22:28:48

标签: jquery submit internet-explorer-7

我使用以下代码禁用提交按钮

$("input[type='submit']").attr("disabled", "disabled");

此代码重新启用它:

$("input[type='submit']").removeAttr("disabled");

除了Internet Explorer 7之外,它在我尝试过的所有浏览器上都能正常工作.IE7会禁用该按钮,但重新启用时,按钮仍然看起来已禁用。

尽管有光标和灰色,但此按钮已启用并可点击:

IE7 enabled button with disabled appearance

(一位同事在使用IE8时遇到了同样的麻烦,但我无法重现它。)

我有一个可以完成工作的解决方法,但它的丑陋。我有两个按钮,一个是禁用的,一个不是。首先,我显示已禁用的一个并隐藏启用的按钮。

$("input[type='submit']:first").css("display","inline"); //show disabled
$("input[type='submit']:last").css("display","none");    //hide enabled
...
<input name="Submit" type="submit" value=" Sign In " tabindex=3 disabled>
<input name="Submit" type="submit" value=" Sign In " tabindex=3 >

当满足我的“if”条件时,我会隐藏已禁用的提交并显示已启用的提交。

这个问题是否有更优雅的基于CSS或JQ的解决方案?

3 个答案:

答案 0 :(得分:8)

$("input[type='submit']").prop("disabled", false);

答案 1 :(得分:3)

尝试

$("input[type='submit']").attr("disabled", "");

$("input[type='submit']").attr("disabled", false);

答案 2 :(得分:1)

@Burak - 这非常有效(John Resig确实提到了使用.prop()代替.attr()来解决这个特定情况)。我还尝试了submitbutton.prop("disabled", false);submitbutton.prop("disabled", true);,以便在IE 7/6上启用和禁用。