为什么这个Javascript破解需要验证?

时间:2014-11-09 13:06:48

标签: javascript asp.net

我有一个ASP.NET Web表单应用程序,其中一个页面用于提交订单。发生了什么事情是一些用户在点击提交时不会等待处理页面(有时需要几秒钟)并再次按下“提交”按钮。这导致重复订单的创建。

为了防止出现上述问题,我将以下代码添加到页面的Page_load中:

Submit.Attributes.Add("onclick", " this.disabled = true; " +   ClientScript.GetPostBackEventReference(Submit, null) + ";");

现在发生的是页面上的所有验证都已中断。也就是说,当用户点击提交时,虽然某些必填字段为空,但是asp:requiredfieldvalidator的文本会短暂显示,但页面会被提交。

如何更改上述代码,以便所需的验证仍然有效?

3 个答案:

答案 0 :(得分:0)

验证和回发代码由asp.net自动添加,如果您设置自己的onclick,则不需要自己添加。

所以我认为通过以这种方式设置属性,您将在验证调用之前添加第二个回发调用。你应该只需要在代码隐藏中添加代码来禁用按钮:

Submit.Attributes.Add("onclick", " this.disabled = true; ");

或页面本身

<asp:Button OnClientClick="this.disabled = true;" />

答案 1 :(得分:0)

在html div元素中再添加一个按钮,并隐藏div可见性。当用户点击你的按钮时。只需在div中激活提交该按钮的事件。并使您的按钮禁用。它会工作试试

答案 2 :(得分:0)

此问题的另一个解决方案是将其放在Ajax更新面板中,并在0 ms延迟后显示进度指示器(微调器)。此解决方案不需要任何Javascript。