本帖最后由 woainin 于 2014-03-09 22:33:04 编辑

解决方案 »

  1.   

    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>
      

  2.   

    你上述方法我觉得可行,但是我这个页面其实是我抽象出来的一个简单页面,实际情况会复杂些!问题的本质是:如何根据RequiredFieldValidator的验证见过来执行Button1_Click方法,就是说如果验证失败就不执行,验证通过才执行Button1_Click方法,谢谢!!请继续指教!!
      

  3.   

    谢谢csy19871106,我看了些asp.net生成的html源代码,觉得Page_ClientValidate()应该是javascript方法
      

  4.   

    各位高手请帮忙,我如何在使用RequiredFieldValidator的情况下,在验证失败的情况下不执行onclick方法?
      

  5.   

    我这里实验没有问题啊
    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>
      

  6.   

    不管你有没有在文本框输入内容,都是true,不正常啊?
      

  7.   

    既然你都用了验证控件,那就不需要OnClientClick里面再进行判断了啊!在你点击按钮页面回发的时候会自动判断的
      

  8.   


    没输入内容是false啊。不过没有执行到服务器端不是OnClientClick中返回了false,而是Validator自己做的。
      

  9.   

    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