2016-10-21 3 views
0

Я пытаюсь сделать валидацию с помощью JQuery .validate plugin.Form .validate with 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.

Если я установил showErrors перед errorPlacament, ничего не изменилось, 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) { 
     } 
    }); 
    }); 

Fiddle: http://jsfiddle.net/maverickosama92/5RrGa/1863/

Смежные вопросы