2010-03-22 6 views
2

Я знаю, что CakePHP имеет очень хорошую проверку из коробки, но я хочу выполнить проверку подлинности JS в моей форме до ее отправки.Проверка правильности формы JQuery и проверка CakePHP

Я играл с плагином проверки jquery, который является именно тем, что я хочу для переднего конца. (Его для подписки на рассылку новостей в модульной коробке).

Проблема в том, что проверка CakePHP повторно отобразит форму, содержащую сообщения об ошибках, если моя проверка не удалась. Мне это не нужно, я просто хочу вернуть false или перенаправить, если он не сбой на стороне сервера.

Кто-нибудь знает о какой-либо проверке jquery, которая будет хорошо сидеть рядом с автокалиметрической формой подтверждения cakephp и дать мне лучшее из обоих миров? Благодарю.

ответ

2

Вы можете удалить автоматическую проверку на стороне торта и просто использовать свою проверку jquery для выполнения работы на стороне клиента. Разумеется, вам нужно будет защитить контроллер, чтобы недействительные поля не были сохранены. Для этого я думаю, что вы хотите отключить автоматическую проверку в Cake и сделать вызов в вашем контроллере до $ this-> validates ($ this-> data), который вернет false при недопустимой передаче данных. Проверьте аргументы в Model :: save(), так как один из них позволяет сохранить даже с плохими данными (это то, что вы хотите, потому что в противном случае оно будет отображать форму).

Подводя итог, просто выполните проверку на стороне клиента с помощью jquery. В контроллере убедитесь, что данные проверяются перед сохранением (если Controller :: validates возвращает false, вам нужно будет повторно отобразить форму в любом случае).

+0

место на спасибо большое;) –

3

Я написал плагин CakePHP, который делает client side form validation on CakePHP forms.

Он использует правила проверки модели CakePHP и генерирует скрипт jQuery, который позволит автоматически проверять входные данные формы.

Только нижняя сторона (на данный момент) поддерживает только ограниченное число типов данных для автоматической проверки. Но с другой стороны, он размещается на лицензиях gitHub и GPL, поэтому каждый может добавить столько же валидаций, сколько им нужно.