Почему моя форма не публикуется, когда я отключаю кнопку отправки, чтобы предотвратить двойной щелчок?
Как и у любого другого веб-разработчика на планете, у меня есть проблема с пользователями, дважды щелкающими по кнопке «Отправить» в моих формах. Насколько я понимаю, обычным способом решения этой проблемы является отключение кнопки сразу после первого щелчка, однако, когда я делаю это,это не публиковать.
Я провел некоторое исследование по этому вопросу, бог знает, что информации достаточно, но есть и другие вопросы, такие какОтключить кнопку при отправке формы, отключение кнопки, кажется, работает. Оригинальный постерОтключить кнопку после отправки похоже, у меня была та же проблема, что и у меня, но нет никаких упоминаний о том, как / если он решил ее.
Вот некоторый код о том, как это повторить (протестировано в IE8 Beta2, но с той же проблемой в IE7)
Мой код aspx
<%@ Page Language="C#" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<script language="javascript" type="text/javascript">
function btn_onClick()
{
var chk = document.getElementById("chk");
if(chk.checked)
{
var btn = document.getElementById("btn");
btn.disabled = true;
}
}
</script>
<body>
<form id="form1" runat="server">
<asp:Literal ID="lit" Text="--:--:--" runat="server" />
<br />
<asp:Button ID="btn" Text="Submit" runat="server" />
<br />
<input type="checkbox" id="chk" />Disable button on first click
</form>
</body>
</html>
Мой код cs
using System;
public partial class _Default : System.Web.UI.Page
{
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
btn.Click += new EventHandler(btn_Click);
btn.OnClientClick = "btn_onClick();";
}
void btn_Click(object sender, EventArgs e)
{
lit.Text = DateTime.Now.ToString("HH:mm:ss");
}
}
Обратите внимание, что при нажатии кнопки происходит обратная передача, и время обновляется. Но когда вы устанавливаете флажок, при следующем нажатии кнопки кнопка отключается (как и ожидалось), но никогда не выполняет обратную передачу.
ЧТО, ЧЕРТ, Я ЗДЕСЬ ЗДЕСЬ ???
Заранее спасибо.