IE6限制按钮点击一次
本文关键字:一次 按钮 IE6 | 更新日期: 2023-09-27 18:27:32
*IE6限制按钮点击一次*
我有一个按钮,应该点击一次,当第一次点击时,我需要运行一些后端逻辑(操作),例如在DB中保存一些数据,发送电子邮件,做一些日志记录,这些操作成功后,我需要重定向到另一个页面。但我正在使用
btnMakeFO.Visible = false ;
在按钮的点击事件之后,用户仍然可以点击它两次以上。
我还使用过:
btnMakeFO.Enabled = false ;
但它也不起作用。
我还使用了以下按钮(btnMakeFO_Click
)点击事件处理程序:
btnMakeFO.Attributes.Add("onclick", "this.disabled=true;" + Page.ClientScript.GetPostBackEventReference(btnMakeFO, "").ToString());
我已经搜索了很多关于这个问题的信息,但我找不到针对我的问题定制的解决方案。
注意:我是在Windows7x-64位机器和IE8上开发的,这里的按钮最多点击两次。在FireFox8中,它只被点击一次。
但在生产环境中,有Windows 2003 Server、Internet Explorer 6,在该服务器上,按钮可以被单击两次以上,即btnMakeFO按钮可以连续单击约10到15次
(生产服务器上的Internet Explorer 6无法升级,因为在较新版本的Internet Explorer中,很少有较旧的应用程序无法正确运行。)
我需要最早在明天之前解决这个问题。请尽早在这方面帮助我。
BTW我使用了以下内容(我从代码项目中找到的),它运行得很好,我对这个解决方案很满意。
<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中,而不是从页面代码后面注入。