我用jquery.validate.js验证表单,但是结果是这样的:当用户名和密码其中一个通过验证就提交,我想让它两个都通过验证再提交的。。我不知道哪里写的不对,大家帮我看看吧,谢谢啦。这是我的js代码<script type="text/javascript">
    function checkusernameorpassword(str) {
        var patrn = /^[_a-zA-Z0-9]+$/;
        if (!patrn.exec(str)) { 
            return false
        }
        return ture;
    }    $.validator.setDefaults({
        submitHandler: function () {
            alert("submitted");
        }
    });
    jQuery.validator.addMethod("isRight", function (value, element) {
        return this.optional(element) || checkusernameorpassword(value);
    }, "字符串中必须只能包含字母、数字和下划线~");    $().ready(function () {
        $("#login_form").validate({
            wraper: "li",
            rules: {
                username: {
                    required: true,
                    minlength: 6,
                    maxlength: 16,
                    isRight: true
                },
                password: {
                    required: true,
                    minlength: 6,
                    maxlength: 16,
                    isRight: true
                }
            },            messages: {
                username: {
                    required: "不能为空~",
                    minlength: "长度太短。。",
                    maxlength: "太长啦。。",
                    isRight: "字母数字下划线,弄错没?"
                },
                password: {
                    required: "不能为空~",
                    minlength: "长度忒短了。。",
                    maxlength: "太长了。。",
                    isRight: "字母数字下划线,弄错没?"
                }
            }
        });
    });
</script>

解决方案 »

  1.   

      不一定要用jq.validate.js,自己写吧。反正功能也不复杂,没必要什么都用插件,即使很大站点,很多功能也是用纯JS来写的。
      

  2.   


    <script type="text/javascript">
    $(document).ready(function(){
    //$.formValidator.initConfig({ formid: "aspnetform", errorfocus: true, btnid: 'fabu', fun:function(){ return sub(); } }); 
    $.formValidator.initConfig({formid:"aspnetform",autotip:true,btnid: 'btnsubmit',onerror:function(msg){}});
    $("#xxtitle").formValidator({tipid:"tip_xxtitle",onshow:"请输入标题",onfocus:"请输入6-30个字符"}).inputValidator({min:6,max:100,onerror:"长度不符合要求,请输入6-30个字符"}).functionValidator({ fun: function(val, elem) { var reg=/^[+-]?\d+(\.\d+)?$/; return !reg.test(val.replace(/(^\s*)|(\s*$)/g, "")); }, onerror: "标题不能为纯数字" });
    $("#jiawei").formValidator({tipid:"tip_jiawei",onshow:"请输入价位",onfocus:"价位不能为空"}).inputValidator({min:1,max:9999999,type:"value",onerrormin:"你输入的值必须大于等于1",onerror:"价位必须在1-9999999之间,请确认"});
    $("#miaoshu").formValidator({tipid:"tip_miaoshu",onshow:"请输入描述",onfocus:"描述不能为空"}).inputValidator({min:1,onerror:"描述不能为空,请确认"});
    $("#mobilephone").formValidator({tipid:"tip_mobilephone",onshow:"请输入您的手机号码",onfocus:"手机号码不能为空"}).inputValidator({min:1,onerror:"手机号码不能为空,请确认"}).regexValidator({regexp:"mobile",datatype:"enum",onerror:"你输入的手机号码格式不正确"});;;
    $("#username").formValidator({tipid:"tip_username",onshow:"请输入联系人",onfocus:"联系人不能为空"}).inputValidator({min:1,onerror:"联系人不能为空,请确认"});
    $(':checkbox[name="leibie"]').formValidator({ tipid: 'tip_leibie',onshow:"请选择一个标签", onfocus: '请选择一个标签' }) .functionValidator({ fun: function(val, elem) { var _c = $(':checkbox[name="leibie"]:checked').length; if(_c == 0) return '请选择至少一个标签'; if( _c>= 1&&_c<=2) return true; return '请选择至少一个标签'; } }); 
        $("#jiawei").unFormValidator(true); //obj.value = "校验价位";
     
    //table stype control
     $('table tr').addClass('odd');
         $('table tr').hover(
          function() {$(this).addClass('highlight');},
          function() {$(this).removeClass('highlight');}
         );
        var cityid = "<%= cityid %>";
        $("#Hidden2").val(cityid);});</script>
      

  3.   

    function checkusernameorpassword(str) {
            var patrn = /^[_a-zA-Z0-9]+$/;
            if (!patrn.exec(str)) { 
                return false
            }
            return ture;
        }这里写错了吧。应该是:return true;