Проверка формы в реальном времени и проверка CakePHP - PullRequest
2 голосов
/ 22 марта 2010

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

Я играл с плагином проверки JQuery, который именно такой, какой я хочу для внешнего интерфейса. (Это для формы подписки на рассылку в модальном окне).

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

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

Ответы [ 2 ]

3 голосов
/ 06 октября 2010

Я написал плагин CakePHP, который проверяет клиентскую форму на формах CakePHP .

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

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

2 голосов
/ 22 марта 2010

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...