几天了,还没搞定Page_ClientValidate()的问题,请大家帮忙!!

woainin 2014-03-09 10:31:20
我很简单的页面:一个文本框,一个验证器,一个按钮,点击按钮后,验证器验证文本框不为空后执行Button1_Click,代码如下:
<asp:TextBox ID="TextBox1" runat="server" Width="148px"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" ControlToValidate="TextBox1" runat="server" ErrorMessage="不能为空" ></asp:RequiredFieldValidator>
<asp:Button ID="Button1" runat="server" Text="提交" OnClientClick="if(Page_ClientValidate()){return true;}else{return false;}" OnClick="Button1_Click" />
很简单的页面可是有问题,不管我文本框是否输入内容,Button1_Click方法总是执行,吧button代码改成下面的,alert(Page_ClientValidate())总是为true:
<asp:Button ID="Button1" runat="server" Text="提交" OnClientClick="alert(Page_ClientValidate());" OnClick="Button1_Click" />
根据我的理解,文本框为空时为false,输入了内容才为false,我的开发环境是vs2012,请各位大哥帮忙,在线等!!!
...全文
276 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
蜉蝣撼天 2014-08-20
  • 打赏
  • 举报
回复
lz试下这个:
<asp:Button ID="Button1" runat="server" Text="提交" OnClientClick="if(CheckClientValidate()){return true;}else{return false;}" OnClick="Button1_Click" />
Code
<script language="javascript" type="text/javascript">
    function CheckClientValidate(){      
       Page_ClientValidate();
       if (Page_IsValid){
           return true;
       }else{
           return false;
       }
     }
    </script>
原文:http://www.cnblogs.com/loalongblogs/archive/2011/08/14/2138462.html
myhope88 2014-03-11
  • 打赏
  • 举报
回复
这个不是js方法吗
宝_爸 2014-03-11
  • 打赏
  • 举报
回复
引用 6 楼 woainin 的回复:
不管你有没有在文本框输入内容,都是true,不正常啊?
没输入内容是false啊。 不过没有执行到服务器端不是OnClientClick中返回了false,而是Validator自己做的。
宝_爸 2014-03-10
  • 打赏
  • 举报
回复
我这里实验没有问题啊 RequiredFieldValidator的EnableClientScript默认就是True, 写在OnClientClick中的代码好像没啥效果啊。


    <form id="form1" runat="server">
    <div>
    
        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
        <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="TextBox1" ErrorMessage="Please enter somthing in textbox"></asp:RequiredFieldValidator>
        <br />
        <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" OnClientClick="if(Page_ClientValidate()){alert('true'); return true;}else{alert('false');return false;}" Text="Button" />
    
    </div>
    </form>
woainin 2014-03-10
  • 打赏
  • 举报
回复
各位高手请帮忙,我如何在使用RequiredFieldValidator的情况下,在验证失败的情况下不执行onclick方法?
天殇月痕 2014-03-10
  • 打赏
  • 举报
回复
既然你都用了验证控件,那就不需要OnClientClick里面再进行判断了啊!在你点击按钮页面回发的时候会自动判断的
woainin 2014-03-10
  • 打赏
  • 举报
回复
不管你有没有在文本框输入内容,都是true,不正常啊?
woainin 2014-03-09
  • 打赏
  • 举报
回复
谢谢csy19871106,我看了些asp.net生成的html源代码,觉得Page_ClientValidate()应该是javascript方法
woainin 2014-03-09
  • 打赏
  • 举报
回复
你上述方法我觉得可行,但是我这个页面其实是我抽象出来的一个简单页面,实际情况会复杂些!问题的本质是:如何根据RequiredFieldValidator的验证见过来执行Button1_Click方法,就是说如果验证失败就不执行,验证通过才执行Button1_Click方法,谢谢!!请继续指教!!
acol 2014-03-09
  • 打赏
  • 举报
回复
asp:RequiredFieldValidator 不能这样用啊 OnClientClick="if(Page_ClientValidate()) OnClientClick时间的方法要是javascript方法,并不是后台方法。 而且RequiredFieldValidator不需要在onclientclick里面判断吧。他自动会判断,如果没通过认证是点不了的。或者你直接用js来控制。 代码如下 <asp:Button ID="Button1" runat="server" Text="提交" OnClientClick="return ckform()" OnClick="Button1_Click" /> <script> function ckform(){ document.getElementById("TextBox1").value==""?return false:return true; } </script>

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧