首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

jquery验证得不到正确的结果,大家帮小弟我分析一上哈,多谢

2013-03-10 
jquery验证得不到正确的结果,大家帮我分析一下哈,谢谢//注册表单验证$(function(){$.validator.addMethod(

jquery验证得不到正确的结果,大家帮我分析一下哈,谢谢
//注册表单验证
$(function(){

$.validator.addMethod("af",function(value,element,params){
var a=123;
$.post("/seller/checkmember?act=login&op=check_member&column=ok",{user_name:value},
   function(data){
        if (data.message==''){
        $("#member_truename").val(data.member_truename);
        $("#member_id").val(data.member_id);
        a='true';
        
        $("#ismember").val('true');
               
                          }else{                               $("#member_name").val('');
                               a='false';
                               $("#ismember").val('false');
                          }
   },"json");
return a;
               
},"");

jQuery.validator.addMethod("lettersonly", function(value, element) {
return this.optional(element) || /^[^:%,'\*"\s\<\>\&]+$/i.test(value);
}, "Letters only please"); 
jQuery.validator.addMethod("lettersmin", function(value, element) {
return this.optional(element) || ($.trim(value.replace(/[^\u0000-\u00ff]/g,"aa")).length>=3);
}, "Letters min please"); 
jQuery.validator.addMethod("lettersmax", function(value, element) {
return this.optional(element) || ($.trim(value.replace(/[^\u0000-\u00ff]/g,"aa")).length<=15);
}, "Letters max please"); 
    $('#recharge_form').validate({
        errorPlacement: function(error, element){
            var error_td =element.parent('dd');        
            error_td.find('.field_notice').hide();
            error_td.append(error);
        },
        success       : function(label){
            label.addClass('validate_right').text('OK!');
        },
        onkeyup: false,
        rules : {
        member_name : {
                required : true,


                lettersmin : true,
                lettersmax : true,
                lettersonly : true,
                af:true
            },
            member_truename: {
                required : true,
                lettersmin : true,
                lettersmax : true,
                lettersonly : true
            },
            goods_name:{
                required : true              
            }, 
            cash:{
            required : true,
            number:true,
            min:100
                       }
        },
        messages : {
        member_name : {
                required : '用户名不能为空',
                lettersmin : '用户名必须在3-15个字符之间',
                lettersmax : '用户名必须在3-15个字符之间',
lettersonly: '用户名不能包含敏感字符'

            },
            member_truename : {
                required : '用户真实姓名不能为空',
                lettersmin : '用户真实姓名必须在3-15个字符之间',
                lettersmax : '用户真实姓名必须在3-15个字符之间',
lettersonly: '用户真实姓名不能包含敏感字符'
            },
            goods_name:{
                required :'商品名不能为空'             
            },
            cash:{


                required :'消费金额不能为空',
                number:'消费金额不为数字',
                min:'最少报单消费额100元'           
            }
        }
    });
});


$(function(){
        $('#cancel_button').click(function(){
            DialogManager.close('seller_order_cancel_order');
         });
       $("input[name='payment']").click(function(){
        if ($(this).attr('flag') == 'other_reason')
        {
            $('#other_reason').show();
        }
        else
        {
            $('#other_reason').hide();
        }
        
        if ($(this).attr('flag') == 'points_reason')
        {
            $('#points_reason').show();
        }
        else
        {
            $('#points_reason').hide();
        }
    });
});
</script>
[解决办法]
因为是异步的,没执行回调都已经return a了,改为$.ajax同步发送请求

    $.validator.addMethod("af", function (value, element, params) {
        var a = 123;
        $.ajax({
            url: '/seller/checkmember?act=login&op=check_member&column=ok',
            type: 'POST',
            async: false, ///////////
            data: { user_name: value },
            success: function (data) {
                if (data.message == '') {
                    $("#member_truename").val(data.member_truename);
                    $("#member_id").val(data.member_id);
                    a = 'true';



                    $("#ismember").val('true');

                } else {
                    $("#member_name").val('');
                    a = 'false';
                    $("#ismember").val('false');
                }
            }

        });
        return a;

    }, "");

热点排行