我有一个这样的表格:
<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代码,但效果相同。我应该使用什么代码才能在所有浏览器上运行?
答案 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');
});
我认为它适用于所有浏览器。