2016-10-21 43 views
0

我想用Jquery .validate插件進行驗證。使用jQuery驗證 - 使用errorPlacement和showErrors

我不能同時使用errorPlacement和showErrors方法。

的jsfiddle: 工作errorPlacement - http://jsfiddle.net/5RrGa/1861/

工作showErrors - http://jsfiddle.net/5RrGa/1862/

我需要他們兩個結合起來,共同努力。

$("#form").validate({ 
    ignore: [], 
    errorPlacement: function(error, element) { 
     // if showErrors exists, this block is skipped. 
     error.insertAfter(element); 
    }, 
    showErrors: function(errorMap, errorList){ 
     for (var i = 0; errorList[i]; i++) { 
      var errorElement = this.errorList[i].element['attributes']['field']['value']; 
      $('#allErrors').append("<p>" + errorElement + "</p>"); 
     } 
    }, 
    submitHandler: function(form) { 
     // Submit the form 
     form.submit(); 
    }, 
    invalidHandler: function(event, validator) { 
     // Show message with errors 
     $('#errordiv').show(); 
    } 
}); 

當我刪除showErrors,errorPlacement的作品完美。 如果我嘗試使用showErrors,則跳過errorPlacement。

如果我在errorPlacament之前放置showErrors沒有任何變化,errorPlacement仍然不起作用。

如何使兩種方法一起工作?

+2

請創建的jsfiddle/codepen那麼我們就可以更精確地看到您的問題,並幫助你。 – maverickosama92

+0

@ maverickosama92 的jsfiddle: 工作errorPlacement - http://jsfiddle.net/5RrGa/1861/ 工作showErrors - http://jsfiddle.net/5RrGa/1862/ 我需要他們兩個結合起來,攜手共進。 –

+1

這裏是小提琴http://jsfiddle.net/maverickosama92/5RrGa/1863/ – maverickosama92

回答

0

這兩部作品與

showErrors: function(errorMap, errorList){ 
    this.defaultShowErrors(); 
}, 
0

你可以這樣做:

$(document).ready(function(){ 
    $("#registerForm").validate({ 
     errorPlacement: function(error, element) { 
      error.insertAfter(element); 
     }, 
     showErrors: function(errorMap, errorList){ 
       var $errorDiv = $("#errordiv").empty().show();    
      this.defaultShowErrors(); 
      var errorsCombined = ""; 
      for(var el in errorMap){ 
        errorsCombined += "<b>"+ el + "</b>" + errorMap[el]+"<br/>"; 
      } 
      $errorDiv.append(errorsCombined); 
     }, 
     submitHandler: function(form) { 
      // Submit the form 
      form.submit(); 
     }, 
     invalidHandler: function(event, validator) { 
     } 
    }); 
    }); 

小提琴: http://jsfiddle.net/maverickosama92/5RrGa/1863/