//注册表单验证
$(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>

解决方案 »

  1.   

    因为是异步的,没执行回调都已经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;    }, "");