我的注册页面上用的JQuery做的无刷新验证(验证用户名长度,密码长度,邮箱格式等),在验证条件不合格时,应该阻止注册行为,阻止后台注册按钮的Click事件,这个应该怎么做呢?JS的 return false; 在这里好像无效。在线等

解决方案 »

  1.   

    不是的,用的服务器控件 ImageButton
      

  2.   

    你的可能有错误!这样是可以的,示例:<html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title>Default</title>
        <script type="text/javascript">
            function Test() {
                return false;
            }
        </script>
    </head>
    <body>
    <form id="form1"  runat="server">
    <asp:ImageButton ID="btnTest"     ImageUrl="1.jpg"  runat="server" onclick="btnTest_Click1"  OnClientClick="return Test();"/>    
    </form>
    </body>
    </html>
      

  3.   

    你不给按钮添加服务端click事件,直接用client_click事件,如果验证通过,则用jquery的ajax去请求后台不就是了嘛
      

  4.   

        <script src="../Js/jquery-1.7.2.js" type="text/javascript"></script>
         <script type="text/javascript">
             $(function () {
                 //如果是必填的,则加红星标识.
                 $("form :input.required").each(function () {
                     var $required = $("<strong class='high'> *</strong>"); //创建元素
                     $(this).parent().append($required); //然后将它追加到文档中
                 });
                 //文本框失去焦点后
                 $('form :input').blur(function () {
                     var $parent = $(this).parent();
                     $parent.find(".formtips").remove();
                     //验证用户名
                     if ($(this).is('#username')) {
                         if (this.value == "" || this.value.length < 4) {
                             var errorMsg = '<samp>请输入至少4字符的用户名.</samp>';
                             $parent.append('<span class="formtips onError">' + errorMsg + '</span>');
                         } else {                         $.ajax({
                                 type: "post",
                                 contentType: "application/json",
                                 url: "WebService1.asmx/ExamName",
                                 data: "{name:'" + $('#username').val() + "'}",
                                 success: function (result) {
                                     if (result != null) {
                                       
                                         errorMsg = '<samp>用户名已经被注册。</samp>';
                                         $parent.append('<span class="formtips onError">' + errorMsg + '</span>');
                                     }
                                     else {
                                         var okMsg = '<samp>输入正确.</samp>';
                                         $parent.append('<span class="formtips onSuccess">' + okMsg + '</span>');
                                     }
                                 }
                             })                     }                 }
                     //密码
                     if ($(this).is('#password')) {
                         if (this.value == "" || this.value.length < 6) {
                         
                             var errorMsg = '<samp>请输入至少6位的密码.</samp>';
                             $parent.append('<span class="formtips onError">' + errorMsg + '</span>');
                         } 
                         else {
                             var okMsg = '<samp>输入正确.</samp>';
                             $parent.append('<span class="formtips onSuccess">' + okMsg + '</span>');
                         }
                     }
                     if ($(this).is('#passwords')) {
                         if (this.value != $('#password').val()) {
                         
                             var errorMsg = '<samp>两次输入密码不一致.</samp>';
                             $parent.append('<span class="formtips onError">' + errorMsg + '</span>');
                         } else {
                             var okMsg = '<samp>输入正确.</samp>';
                             $parent.append('<span class="formtips onSuccess">' + okMsg + '</span>');
                         }
                     }
                     //验证邮件
                     if ($(this).is('#email')) {                     if (this.value == "" || (this.value != "" && !/.+@.+\.[a-zA-Z]{2,4}$/.test(this.value))) {                         var errorMsg = '<samp>请输入正确的E-Mail地址.</samp>';
                             $parent.append('<span class="formtips onError">' + errorMsg + '</span>');
                         } else {
                             var okMsg = '<samp>输入正确.</samp>';
                             $parent.append('<span class="formtips onSuccess">' + okMsg + '</span>');
                         }
                     }
                 }).keyup(function () {
                     $(this).triggerHandler("blur");
                 }).focus(function () {
                     $(this).triggerHandler("blur");
                 }); 
                 //提交,最终验证。
                 //重置
                 $('#res').click(function () {
                     $(".formtips").remove();
                 });
             })
             
             $('#ImageButton2').click(function () {
                 $.ajax({
                     type: "post",
                     contentType: "application/json",
                     url: "WebService1.asmx/ExamAll",
                     data: "{username:'" + $('#username').val() + "',password:'" + $('#password').val() + "',passwords:'" + $('#passwords').val() + "',email:'" + $('#email').val() + "'}",
                     success: function (result) {
                         $('#examTxt').append("<samp><a>'"+result+"'</a></samp>");
                         return false;
                     }
                 })
             })
        </script>
    //以上是做验证的JQuery  实在不知道 在哪加上一个  Function exam() {return false;}
    //添加的ImageButton
        <asp:ImageButton ID="ImageButton2" runat="server" 
                ImageUrl="~/Images/Button/RegBtn.bmp" onclick="ImageButton2_Click1" />
      

  5.   

    你不给按钮添加服务端click事件,直接用client_click事件,如果验证通过,则用jquery的ajax去请求后台不就是了嘛
      

  6.   

    jquery的ajax默认是异步的,那你做完了就直接返回了,也没有return false撒
      

  7.   

    可以不异步啊,属性sync:false,即可。
      

  8.   

    使用前自己引用Jquery和Jquery Easyui
    <html>
    <head><script type="text/javascript">
            function confirmRemove() {
                $.messager.confirm('确认', '确定销户吗?', function (r) {
                    if (r) {
                        __doPostBack('lbtnRemove', '');
                    }
                });
                return false;
            }
    </script></head>
    <body>
    <form id="form1" runat="server"><asp:LinkButton ID="lbtnRemove" Text="销户" runat="server" OnClick="lbtnRemove_Click" OnClientClick="javascript:return confirmRemove();" /></form>
    </body>
    </html>