IE6限制按钮点击一次
* IE6限制按钮点击一次。 *
我有一个按钮,应该单击一次,并且在第一次单击时,我需要运行几个后端逻辑(操作),例如在数据库中保存一些数据,发送电子邮件,执行一些日志记录,以及之后我需要将这些操作的成功重定向到其他页面。 但我的按钮的单击事件后使用IE6限制按钮点击一次
btnMakeFO.Visible = false ;
,用户仍然可以点击次数不要超过两次。
我也用了:
btnMakeFO.Enabled = false ;
,但它不是工作压力太大。
我也用下面的按钮的(btnMakeFO_Click
)Click事件处理程序:
btnMakeFO.Attributes.Add("onclick", "this.disabled=true;" + Page.ClientScript.GetPostBackEventReference(btnMakeFO, "").ToString());
...我已经寻找关于这个问题有很多,但我无法找到定制我的问题的解决方案。
注意:我正在开发Windows 7 x-64位机器和IE8,这里按钮最多点击两次。在FireFox8中,它只被点击一次。
但是在生产环境中有Windows 2003 Server,Internet Explorer 6,在这个服务器上,按钮甚至可以被点击两次以上,即btnMakeFO按钮可以连续点击10到15次左右。
(生产服务器上的Internet Explorer 6无法升级,因为较少的旧版应用程序在新版Internet Explorer中无法正常运行。)
我需要在明天之前尽早解决此问题。请尽早帮助我解决这个问题。
顺便说一句我已经使用了以下(我从Code Project找到),它工作得非常好,我对这个解决方案很满意。
<asp:Button OnClick="btnMakeFO_Click" OnClientClick="clickOnce(this, 'ABC...')">
<script type="text/javascript">
function clickOnce(btn, msg)
{
// Test if we are doing a validation
if (typeof(Page_ClientValidate) == 'function')
{
// if we are doing a validation, return if it's false
if (Page_ClientValidate() == false)
{
return false;
}
}
// Ensure that the button is not of type "submit"
if (btn.getAttribute('type') == 'button')
{
// The msg attibute is absolutely optional
// msg will be the text of the button while it's disabled
if (!msg || (msg='undefined'))
{
msg = 'Saving.......';
}
btn.value = msg;
// The magic :D
btn.disabled = true;
}
return true;
}
</script>
该javascript方法应该工作。
您正在从服务器端注入代码,这可能具有挑战性。在浏览器中运行应用程序和查看源代码时,您仍然应该能够看到结果。您应该看到JavaScript中的标签,就像这样:
<input type="submit" value="Submit" onclick="this.disabled=true" />
对于ASP.Net,您也可以尝试,而不是从你的页面代码 - 它注入了OnClientClick
的事件,你可以直接添加到HTML,背后。