js表单验证,用onblur来触发,然后用innerHTML显示信息,我都会,但是如何在验证失败时防止提交?
ajax用户名验证,也是同样的问题。
还有,同一个input元素,onblur,会首先触发js验证还是ajax验证?

解决方案 »

  1.   

    验证失败时写一句 return false;表单就不会提交了。先在前台进行JS验证,为了防止客户端禁用javascript,要在后台进行服务端验证。
      

  2.   

    一般应该做两次验证,在提交之前应该再验证一次,如果不通过就不能提交,应该先触发非空验证,然后触发ajax验证。
      

  3.   

    function checknickname(){
    var obj1=document.getElementById('msg1');
    if(document.form1.nickname.value.length<2||form.nickname.value.length>20){

    obj1.innerHTML="nickname is too long or too short";
    document.form1.submit1.disabled=true;
    }
    else
    {
    obj1.innerHTML="ok";
    document.form1.submit1.disabled=false;
    }

    }
    这是我写的检查昵称长度的代码,但是很奇怪,当昵称合适的时候,不显示"ok",提交按钮也没恢复,怎么回事?
      

  4.   

    防止提交可以再你的form标签中添加:onsubmit="return check()"
     <form action="" onsubmit="return check()" >
     </form>
    然后check()方法里可以做各种验证。onblur会先触发js验证。
      

  5.   


    jQuery(document).ready(function(){ 
    //提交验证
    var validator =jQuery("#form").validate({  //onblur,onchange触发     
        submitHandler: function(form){},  
        rules: {          //定义验证规则,其中属性名对应为表单的name属性         
         code:{
             required:true,
                                    maxlength:3 ,          remote:{ 
    url:"systemParametersCodeIsUnique.html" ,
    type:"post" ,
    data:{

    opttype:'1',
    systemParametersId:function (){
    var opttype = '${opttype}';
    if(opttype=="update" || opttype=="view" ){
    return "${systemParameters.id}"
    }else return "0";
    },
    code:function(){return getVal("code");}

    }    
            
        }
        },
        messages: {
        code: {remote:"已经存在"}  
             
    },         
        highlight: function(element, errorClass) {  //针对验证的表单设置高亮  
               jQuery(element).addClass(errorClass);              
        },
        success: function(label) {         
                 label.html('<img id="correct" src="images/tick.png" width="16" height="16" alt=".">');    
            },
        errorPlacement: function(error, element) {  //验证消息放置的地方                  
                   error.insertAfter(element);
          }
    }); 
    });
    使用jquery.validate.js插件function save() {//submit按钮点击事件再次触发
    jQuery.water.hideAll();

    //框架验证
    var validator = jQuery("#form").validate();
    var f1 = validator.form();
    if(f1==false)return false;
    }
      

  6.   

    是不是onsubmit=return check(),check()里面有return false,那Ajax怎么办,也return false?