2010-08-03 146 views
3

我有一个这样的形式:禁用提交按钮会取消表单提交

<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代码,但效果相同。我应该使用哪些代码才能在所有浏览器上使用?

回答

1

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

+0

如果没有人采用非黑客方式,我可能必须这样做。 – fitz 2010-08-03 02:45:48

-1

如果你想要你可以使用jQuery。

试试这个:

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

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

+0

虽然我没有jquery。 – fitz 2010-08-03 02:56:10

1

试试这个:

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

否则,MS雷管不使按钮可以继续一旦停用处理。 (这是一个婊子,因为我使用这个,它在火狐工作)

+0

不,不起作用。澄清:如果我将文本字段留空,它不起作用。如果它们被填满,它就会起作用。这适用于我尝试过的任何方法。 – fitz 2010-08-03 03:39:09

0

这很奇怪。

尝试:

<input type="submit" id="submitbtn" value="submit" onclick="setTimeout(function() { this.disabled = true;}, 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分开。