2012-02-17 37 views
0

他, 我想验证一个字段使用Ajax调用利用jQuery LiveValidation库。 在Ajax调用中,我实际上检查了两件事情,如果验证失败,将返回两个不同的消息。现在,我的Qn是我可以如何使用从服务器返回的消息来设置failureMessage。我的JS代码如下:在LiveValidation中如何在Ajax回调中设置failureMessaage?

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}); 

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

回答

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}); 
+0

枝Dalius,我其实嚣得到变化所提出的建议? – marifrahman 2012-02-18 05:50:18

+0

嘿,你需要在成功回调中移动“if(isaccepted === false){...}”以使其工作。 – 2012-03-09 14:54:15

相关问题