Ну, если вы посмотрите на определение clientValidation
:
Определяет, проверяются ли поля формы при последнем вызове
isValid до подачи. Введите false в опциях отправки формы
чтобы предотвратить это. Если не определено, проверка поля перед отправкой
производится.
По сути, это означает, что если для него установлено значение false
, то форма будет автоматически проверена перед отправкой ... в этот момент произойдет сбой, если вы пометили какие-либо поля как недействительные. Если вы установите его на true
, то вам необходимо вручную проверить, является ли форма действительной, перед отправкой.
Стоит отметить, что ваш AJAX vtype никогда не будет работать. Когда форма вызывает vtype, чтобы проверить, является ли поле действительным, все, что он получает в ответ, это true
..., поэтому форма отправляется несмотря ни на что. Даже если вы скажете, чтобы он возвращался после выполнения запроса ajax, форма будет отправлена до того, как завершится запрос vtype ajax.
Лучшим решением было бы включить вызов vtype вручную в свой обработчик кнопки отправки ... затем в success
запроса ajax просто выполните
if(form.isValid()) {
form.getForm().submit();
}
Это заставит событие нажатия кнопки отправки сначала проверить поле имени пользователя, а затем, и только тогда, оно отправит форму.