2015-03-27 3 views
1

Я пытаюсь выполнить проверку поперечного поля в простой форме смены пароля. Например, новые и подтверждающие пароли одинаковы, новый пароль отличается от старого и т. Д.Tapestry.FORM_VALIDATE_EVENT с Tapestry 5.3 и tapestry-jquery

Похоже, что я должен предоставить обработчик для Tapestry.FORM_VALIDATE_EVENT, который у меня есть, но я не могу найти правильный способ сигнализировать об ошибке и предоставлять сообщение.

Комментарии в источнике tapestry-jquery.js указывают, что я должен был отправить event.result в значение false, но это, похоже, ничего не делало. Эти комментарии также выглядят как копия/вставка из прототипа библиотеки Tapestry, поэтому я не уверен, что они действительно применяются.

Я попытался сделать исключение, как и другие пользовательские валидаторы, и это, казалось, ничего не делало.

Вот что я пытался до сих пор:

 $("#" + specs.form).on(Tapestry.FORM_VALIDATE_EVENT, function (event) { 

      var $currPassword = $("#" + specs.currentPassword).val(); 
      var $newPassword = $("#" + specs.newPassword).val(); 
      var $confirmPassword = $("#" + specs.confirmPassword).val(); 

      if ($currPassword == $newPassword) { 
       // throw "wtf"; 
      } 

      if ($newPassword != $confirmPassword) { 
       // throw "other wtf"; 
      } 
      event.result = false; 
      return event; 
     }); 

Кто-нибудь есть рабочий пример перекрестной проверки формы с tapestry-jquery?

Благодаря Тони

ответ

0

Вот пример, который показывает, как сообщить об ошибке валидации пользовательских JavaScript валидатор Гобелен 5.3.8 с «гобелен-JQuery»:

var field = $('#input-should-be-validated'); 
field.tapestryFieldEventManager(); //initialize 
$.tapestry.utils.addValidator(field, function(value) { 
    if(value is NOT VALID){ 
     var form = field.closest('form'); 
     form.formEventManager("setValidationError", true); 
     field.tapestryFieldEventManager("showValidationMessage", "NOT VALID"); 
    } 
}); 
Смежные вопросы