禁用提交按钮取消表单提交

时间:2010-08-03 02:36:50

标签: javascript html internet-explorer forms

我有一个这样的表格:

<form action="lol.php" method="POST">
<input type="text" name="fe" />
<input type="submit" id="submitbtn" value="submit" onclick="this.disabled = true;" />
</form>

并且在Firefox中它运行良好,但在Internet Explorer(最新版本)中,该按钮被禁用但表单未提交。我也尝试过:

<form action="lol.php" method="POST" onsubmit="document.getElementById('submitbtn').disabled = true">

并从提交按钮中删除了onclick代码,但效果相同。我应该使用什么代码才能在所有浏览器上运行?

5 个答案:

答案 0 :(得分:5)

好的,所以好的黑客就是准备第二个无效的假按钮:

<form action="lol.php" method="POST">
<input type="text" name="fe" />
<input type="button" id="submitbtnDisabled" disabled="disabled" value="submit" style="display:none;" />
<input type="submit" id="submitbtn" value="submit" onclick="this.style.display='none'; document.getElementById('submitbtnDisabled').style.display='inline';" />
</form>

注意:

因为你说你没有使用jQuery我正在使用标准的JavaScript。唯一的建议是使用unbotrusive JavaScript并将内联CSS移动到样式表,只是为了将脚本和样式与HTML分开。

答案 1 :(得分:1)

我之前也遇到过这个问题。我在提交表单时最终隐藏了提交按钮,并将其替换为具有相同文本的禁用按钮。工作得很好。

答案 2 :(得分:1)

试试这个:

onclick="this.disabled=true;return true;"

否则,MS exploder在禁用后不允许按钮继续处理。 (这是一个婊子,因为我使用它并且它在FireFox中工作)

答案 3 :(得分:0)

这很奇怪。

尝试:

<input type="submit" id="submitbtn" value="submit" onclick="setTimeout(function () { this.disabled = true;}, 0)" />

答案 4 :(得分:-1)

如果您愿意,可以使用jquery。

试试这个:

$('#submtbtn').submit(function() {
   $(this).attr('disabled', 'disabled');
});

我认为它适用于所有浏览器。