Проверка формы jQuery / Ajax — Как не отправлять форму, если форма не проверяется, а ajax проверяет

#jquery #ajax #validation

#jquery #ajax #проверка

Вопрос:

Я использую этот механизм проверки формы (http://www.position-absolute.com/articles/jquery-form-validator-because-form-validation-is-a-mess /) и у меня возникают проблемы с правильной проверкой как обычных полей, так и 2 полей, которые у меня есть, с использованием проверки AJAX.

2 поля ajax используются для определения того, используются ли уже имя пользователя и каталог, поскольку у нас не может быть дубликатов в базе данных.

Я хочу проверить форму, затем заставить ее выполнить ajax-запрос для отправки информации в базу данных. Я могу использовать $ (‘#myform’).validationEngine(‘validate’), чтобы вернуть true или false, если форма (без проверки AJAX) проверяется. Но я не уверен, как вернуть значение true или false одновременно как для обычной, так и для ajax-проверки, поскольку этот метод работает только для проверки без ajax.

Есть идеи?

Ответ №1:

Разве вы не можете просто проверить, пусты ли поля и содержат ли они правильные данные, перед отправкой ajax-запроса?

Комментарии:

1. Я не совсем понимаю. Для обычных полей у меня есть проверка, что они не пустые. Но в 2 поля (каталог и имя пользователя) должна быть введена информация, затем проверена через ajax, чтобы увидеть, используются ли они уже, затем возвращена как действительная или недействительная. Эта часть работает. Однако использование опции ‘validate’ для средства проверки фактически не проверяет, являются поля ajax допустимыми или нет. Таким образом, он все равно отправляет, даже если это недопустимые записи, но все обычные поля являются. Вот в чем проблема.

2. Они разные <form>? Они должны быть, верно? У вас возникнут проблемы с настройкой этого, потому что пакеты проверки формы обычно работают с одной формой. Я думаю, что на этом этапе вам придется углубиться в функции обратного вызова самого средства проверки и начать понимать, как вы можете изменить его в соответствии с вашими потребностями.

3. Другая проблема заключается в том, что вы подразумеваете под проверкой? Объясните мне логику здесь, первые два поля пересылаются и возвращаются с «действительным» или «недействительным». Затем он заполняет поля ajax «допустимым» именем, потому что они доступны только для чтения, верно? Затем, когда вы отправляете снова, вам все равно придется проверять свои значения (потому что ваша информация о хранении на странице), но в этот момент, если имя пользователя и каталог заполнены, это считается действительным, верно? Потому что вы имеете в виду, что она должна быть недействительной, если она в базе данных? Здесь много идей, которые неясны, поэтому вам следует опубликовать код.

4. В другом посте я заявлял, что иногда решения для простых проблем приходят в виде 20 тыс….. 100 тыс. плагинов. Вы уверены, что вам нужен этот …. беспорядок? Вы, насколько я мог понять, просто используете два поля для проверки всей формы. Просто используйте чистый javascript и jquery для проверки двух исходных полей, возвращающих json и передающих эту информацию на следующий шаг: $.post(‘url’,’userName=’ username ‘amp;directory=’ directory,функция (данные) { eval(‘var json=’ data); если это … });

5. Jakx: Это одна форма. Кода здесь слишком много, но в основном форма содержит контактную информацию (имя, адрес и т.д.), Часть из которых обязательна. Затем есть информация для входа (имя пользователя, пароль, каталог). Имя пользователя и каталог должны быть уникальными (т. Е. ajax проверяет, что уже есть в базе данных). Ajax возвращает либо действительный, либо недействительный для любых пользовательских вводов. Если допустимо, плагин отображает зеленое сообщение, недействительное — красное сообщение. Проблема в том, что форма все равно будет отправлена, если введены все обязательные поля, а поля ajax недействительны.