ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 防止重复提交与验证控件配合使用

防止重复提交与验证控件配合使用

原创 Linux操作系统 作者:iDotNetSpace 时间:2008-09-09 13:14:32 0 删除 编辑

为了防止重复提交表单,一般情况下都是在点击按钮后用javascript把提交按钮设为disabled。在asp.net 下通常是使用OnClientClick来实现。

<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--><asp:TextBox ID="txt" runat="server">asp:TextBox>

<asp:Button ID="btn" runat="server" Text="Button" onclick="btn_Click"  OnClientClick="clientclick()" UseSubmitBehavior="false"/>

<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->

 

function clientclick()

 

   {
        $(
"#<%= btn.ClientID%>").attr("disabled",true);
   }
</script>

但是这种情况下如果使用了验证控件,在验证控件启用的时候,按钮同样会被disabled掉,造成最后无法提交表单。

其实验证控件启用的时候就是控制对应span的显示,我们可以用jquery的选择器得到对应的span的数量,然后再把按钮重新启用就可以了。

我的解决办法:

<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--><script type="text/javascript">
   $(document).ready(
function(){
   $(
"#<%= btn.ClientID%>").click(function(){
        
var span=$("span[id*='Validator']:visible");
        
if(span.length>0) 
        {
            $(
this).attr("disabled",false);
        }
   });
   });
function clientclick()
   {
        $(
"#<%= btn.ClientID%>").attr("disabled",true);
   }
</script>
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--><asp:TextBox ID="txt" runat="server">asp:TextBox>
<asp:Button ID="btn" runat="server" Text="Button" onclick="btn_Click"  OnClientClick="clientclick()" UseSubmitBehavior="false"/>
<asp:RequiredFieldValidator ID="Validator" runat="server" 
        ControlToValidate
="txt" ErrorMessage="RequiredFieldValidator">asp:RequiredFieldValidator>
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->protected void btn_Click(object sender, EventArgs e)
        {
            
//do someing
        }

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/12639172/viewspace-442648/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: C#编码习惯
请登录后发表评论 登录
全部评论

注册时间:2008-01-04

  • 博文量
    2376
  • 访问量
    5766206