2013-11-21 4 views
0

Я пытаюсь разместить размещение сообщений об ошибках по умолчанию и поведение при использовании плагина jQuery Validate. Когда я устанавливаю любые свойства объекта validate(), поведение по умолчанию, похоже, изменяется.jQuery Validate Plugin Поведение по умолчанию

Например. Если бы я просто украсить свой HTML вход с требуемым атрибутом здесь результаты:

HTML атрибут:

<input id="name" type="text" required/> 

Dedfault jQuery Validate Behavior

После того, как я изменить свойство объекта валидации здесь является то, что я получаю:

After Validate Property Change

код, я использую для редактирования:

$("[id$='emailForm']").validate({ 
    debug: true, 
    rules: { 
     txtEmail: { 
      required: true, 
      email: true 
     } 
    } 
}); 

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

+0

Вы не делаете достаточно показать код, чтобы объяснить ваши фотографии. Один код jQuery не может делать то, что вы показали, и это истинное поведение по умолчанию => http://jsfiddle.net/6UAs3/ – Sparky

+0

Я могу добавить точный атрибут HTML, но кроме того, что я вложил, не является дополнительным кодом. Вот как работает проверка jQuery. – EthanTowne

+0

Что вы _think_ является по умолчанию плагином jQuery Validate, это не так. Первое изображение - это стандартная проверка HTML5, предоставленная вашим браузером, совместимым с HTML5. Второе изображение - это поведение по умолчанию плагина jQuery Validation. – Sparky

ответ

1

Ваш код:

<input id="name" type="text" required/> 

required является атрибутом проверки HTML5. И то, что вы видите на первом снимке, это только то, что делает ваш браузер, совместимый с HTML5 ... он не имеет ничего общего с плагином. Плагин ничего не делает, пока вы не вызываете метод .validate() для его инициализации.

Как только вы вызываете метод .validate(), вы инициализируете плагин Validation jQuery Validation, а затем он берет на себя. Второе изображение - это поведение плагина по умолчанию.

Демо умолчанию внешний вид плагина: http://jsfiddle.net/6UAs3/


Смотрите этот вопрос/ответ о том, как достичь «смотреть» вы хотите, используя плагин JQuery Validation: How to display messages from jQuery Validate plugin inside of Tooltipster tooltips?

-2

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

var validator = $("[id$='emailForm']").validate({ 
    debug: true, 
    rules: { 
     txtEmail: { 
      required: true, 
      email: true 
     } 
    } 
}); 

// Trigger validation at later point by invoking the valid method instead of validate 
var isValid = validator.valid(); 
+0

Значит, это будет поддерживать поведение по умолчанию Validate? – EthanTowne

+0

Да. Но это зависит от того, что вы подразумеваете по умолчанию. Если вы полностью полагаетесь на атрибут html 'required', вам не нужен плагин validator. Я не уверен, какие браузеры должны поддерживать ваше приложение, но вы не можете полагаться на требуемый атрибут для правильной работы в старых браузерах.Каждый вызов метода проверки применит исправления по умолчанию для элемента (ов). Ключ состоит в том, чтобы один раз вызвать проверку, а затем использовать возвращаемый объект validator и вызвать метод valid(), который возвращает логическое значение. – Srini

Смежные вопросы