0

嗨,我正在尝试使用 jQuery LiveValidation 库使用 Ajax 调用来验证字段。在 Ajax 调用中,我实际上是在检查两件事,而未能验证其中任何一个都将返回两条不同的消息。现在,我的 Qn 是如何使用从服务器返回的消息设置 failureMessage 的。我的 JS 代码 id 如下:

var mymsg = "";
function check_avail(id, postUrl,callback)
{

    var dataVal = id+'='+$("#"+id).val();

    var isaccepted = ''
    $('#'+id).next('span').remove();
    $("#check-"+id).show();
    $.ajax({
        url: postUrl,
        cache: false,
        type: 'post',
        dataType: 'json',
        data: dataVal,
        async:  false,
        success: function(data) {
            $("#check-"+id).hide();
            if( data.success === 'true' )
            {
                isaccepted = true;
            }

            if( data.success === 'false' )
            {

                isaccepted = false;
                callback(data.message);

            }

        }
    });


    if (isaccepted === false) {
        $('.grid_16').find('input, textarea, button, select').attr('disabled','disabled');
        $('#subs_mob_no').removeAttr('disabled');


        return false;   
    } else{
        $('.grid_16').find('input, textarea, button, select').removeAttr('disabled');
        return true
    };
}
mob_no.add(Validate.Custom, { against: function(value, args) { return check_avail(subs_mob_no', '<?php echo site_url('recycledsafman/ajax_check_avilable'); ?>',function(msg){ 
            mymsg = msg;
        }); 
    },failureMessage:this.mymsg} );

任何人都可以请你建议我该怎么做?!

4

1 回答 1

0

尝试这个:

var mymsg = "";
function check_avail(id, postUrl,callback)
{

    var dataVal = id+'='+$("#"+id).val();

    var isaccepted = ''
    $('#'+id).next('span').remove();
    $("#check-"+id).show();
    $.ajax({
        url: postUrl,
        cache: false,
        type: 'post',
        dataType: 'json',
        data: dataVal,
        async:  false,
        success: function(data) {
            $("#check-"+id).hide();
            if( data.success === 'true' )
            {
                isaccepted = true;
            }

            if( data.success === 'false' )
            {
                isaccepted = false;
                callback(data.message);
            }

            if (isaccepted === false) {
                $('.grid_16').find('input, textarea, button, select').attr('disabled','disabled');
                $('#subs_mob_no').removeAttr('disabled');


                return false;   
            } else {
                $('.grid_16').find('input, textarea, button, select').removeAttr('disabled');
                return true
            }
        }
    });
}
mob_no.add(Validate.Custom, { against: function(value, args) { return check_avail(subs_mob_no', '<?php echo site_url('recycledsafman/ajax_check_avilable'); ?>',function(msg){ mymsg = msg; }); },failureMessage:this.mymsg} );
于 2012-02-17T14:48:29.277 回答