2013-06-23 4 views
0

Я пытаюсь проверить форму с помощью проверки jquery, но она не отображает ожидаемое сообщение об ошибке. Как я могу установить его, чтобы он показывал мои сообщения?Почему валидация jQuery не работает здесь

вот Javascript, что я использую:

$(function() { 

$("#registerForm").validate({ 
    rules: { 
     inputEmail: { 
      required: true, 
      email: true 
     } 
    }, 
    messages: { 
     inputEmail: "Please enter a valid email address" 
    } 
}); 
}); 

Пожалуйста, посмотрите на jsfiddle ссылку моего кода:

JSFIDDLE code with html/bootstrap* Обновлено

На живой версии на моем сайте он даже не отображает всплывающее сообщение, которое появляется в jsfiddle. Пожалуйста, помогите мне в этом.

В идеале я хотел бы отображать встроенные сообщения или резюме, если проверка не удалась, но не знает, как это сделать. Я надеялся, что если будет выполнена проверка jquery, я бы смог указать пользовательские функции для обработки событий success и error.

Буду признателен, если кто-то может помочь мне здесь. Благодарю.

UPDATE

Screen capture of fiddler response which I get

+0

Ваша проблема очень неясна. Код, который вы опубликовали выше, работает как доказано [вашим jsFiddle] (http://jsfiddle.net/f7jq6/6/). Он показывает ваше сообщение об ошибке. – Sparky

+0

Сообщение об ошибке, которое я получаю, это 'Пожалуйста, заполните это поле 'или' Пожалуйста, введите адрес электронной почты', тогда как сообщение, которое я ожидаю, является 'Пожалуйста, введите действительный адрес электронной почты'. Вы получаете другой результат? Кроме того, вы пробовали форму в прямой ссылке? Там он даже не показывает сообщение. – sttaq

+0

В [вашем jsFiddle] (http://jsfiddle.net/f7jq6/6/) я вижу именно то, что я ожидал и заявлял ранее, пользовательское сообщение об ошибке, определенное в вашем коде: «Пожалуйста, введите действительный адрес электронной почты» , – Sparky

ответ

1

Обратите внимание, как вы до сих пор этот вопрос даже после того, как я удалил JQuery и JQuery Validate из jsFiddle?

http://www.jsfiddle.net/xRRZb/4

Всплывающие пузырьки и Преобладающая сообщения генерируются непосредственно браузером благодаря HTML5 ... ничего общего с какой-либо из вашей JavaScript или JQuery кода.

Так, так как вы уже определили правила required и email в .validate(), удалить required и type="email" из вашего встроенного HTML:

<input type="text" name="inputEmail" id="inputEmail" placeholder="E.g. [email protected]" /> 

DEMO: http://www.jsfiddle.net/xRRZb/6


EDIT:

jQuery Validate 1.8 довольно старый. Рассмотрите возможность обновления до версии 1.11.1

На самом деле это, вероятно, ваша проблема. Version 1.11.1 dynamically adds a novalidate="novalidate" attribute to the form tag to disable HTML5 validation, когда используется плагин.

К сожалению, version 1.8 does not have this feature.

Кроме того, вы можете вручную добавить атрибут novalidate, чтобы отключить проверку HTML5. Однако, если вы вручную добавите атрибут novalidate, резервной копии не будет.

+0

ваша ссылка не работает – sttaq

+0

@sttaq, извините ... Я ошибся мои URL ... исправлены. – Sparky

+0

@sttaq, см. Мои правки – Sparky