2012-02-17 40 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

相關問題