PEAR QuickForm - ajax-валидация формы?

Fludimir

Новичок
PEAR QuickForm - ajax-валидация формы?

Давно пользуюсь этим очень удобным классом для генерации и валидации форм, практически все что возможно и нужно есть, после знакомства с квикформами задумываться о том как нарисовать какую-то формочку не приходится. Но что делать, если какие то данные в форме есть необходимость валидировать на сервере(проверить незанятое имя пользователя к примеру). В квикформах данные могут валидироваться как на сервере, так и на стороне клиента, автоматически генерируя яваскрипт для валидации браузером. Кроме того можно осуществлять валидацию используя любые доступные яваскрипту функции, просто указав как правило имя яваскрипт-функции, но функция должна возвращать булево значение. А для валидации аяксом нужен callback-вызов яваскрипт функции, чего насколько я понимаю нет. Конечно можно отдельно сделать валидацию нужного поля любым подходящим способом, но это очень неудобно, учитывая что все остальное прекрасно реализуется встроенными средствами квикформ. Проблема с аякс-валидацией в квикформах явно не нова, но нагуглить решение не удалось. отзовитесь если кто здесь пользуется квикформами и сталкивался с такой же проблемой
 

Sad Spirit

мизантроп (Старожил PHPClub)
Команда форума
Кагбэ в текущий QuickForm не очень просто интегрировать валидацию на AJAX'е (когда он писался, AJAX'а ещё практически не было). Можно только попробовать переписать куски, ответственные за генерацию жаваскрипта там, но это не очень просто.

Жди QuickForm2, жаваскриптовая валидация следующим пунктом в списке задач. Естественно, планируется сделать её несколько более расширяемой.

Но, кстати, проверку незанятости имени я бы не стал вешать на обработчик отправки формы, теряется весь смысл AJAX'а. Проще повесить на onblur для поля ввода, и тогда никаких проблем с QuickForm'ом и валидацией.
 

Fludimir

Новичок
Ждать квикформ2 то конечно ждем, но задачи которые надо решать возникают уже сейчас.

Если нужна проверка только по одному полю можно сделать так, хотя мне очень не нравится сама идея прикручивать свою валидацию поверх того что делают квикформы. И как быть если нужна проверка значений нескольки полей, такое себе групповое правило? Серверную валидацию этого в квикформах можно сделать прекрасно, но если надо без обновления странички?

В любом случае мне больше всего не нравится необходимость в дополнение к скриптам валидации квикформ писать чтото свое, пытаясь сделать чтобы оно выглядело так же как и у квикформ. Тут уже проще использовать квикформы только для рисования форм, а валидацию осуществлять чем-то другим, например весьма удобным JQuery-validation. Только вот если у клиента яваскрипт вдруг отключен и что-то сглючило, то либо на "не готовый" к неправильным данным скрипт прийдут невалидные данные, что может вызвать ошибку в дальнейшем, либо правила для валидации придется писать два раза - один раз средствами квикформ, второй раз - жквери-валидатором или как-то еще. Естественно это не самый приятный выход
 
Сверху