我使用以下代码禁用提交按钮
$("input[type='submit']").attr("disabled", "disabled");
此代码重新启用它:
$("input[type='submit']").removeAttr("disabled");
除了Internet Explorer 7之外,它在我尝试过的所有浏览器上都能正常工作.IE7会禁用该按钮,但重新启用时,按钮仍然看起来已禁用。
尽管有光标和灰色,但此按钮已启用并可点击:
(一位同事在使用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的解决方案?
答案 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上启用和禁用。