Есть ли способ предотвратить ненавязчивую проверку JQuery от установки фокуса на недопустимое поле - PullRequest
1 голос
/ 25 февраля 2012

У меня есть мобильная страница jquery с формой с несколькими текстовыми полями.Я использую jquery.validate.unobtrusive.js для проверки формы.Если поле помечено как обязательное, и пользователь не заполняет его, проверка его улавливает и фокусируется на текстовом поле.На мобильном устройстве, таком как iPhone и Android, этот фокус будет прокручивать экран и отображать виртуальную клавиатуру, которая иногда скрывает сообщения проверки или прокручивает их.Мне любопытно, есть ли способ отключить это «автофокус при аннулировании».

Возможно, это не лучший пользовательский опыт, но я бы хотел поэкспериментировать с его отключением.

Ответы [ 3 ]

4 голосов
/ 08 мая 2013

Попробуйте это:

$(document).ready(function () {    
    $("form").bind("invalid-form.validate", onValidationHandler);
});

function onValidationHandler(form, validator) {
    validator.settings && (validator.settings.focusInvalid = false);
};
4 голосов
/ 05 декабря 2013

Я считаю это лучшим при использовании ненавязчивой проверки.Просто добавьте это в свои сценарии, и это отключит поведение автофокуса независимо от того, как выполняется проверка:

$.validator.defaults.focusInvalid = false;
0 голосов
/ 25 февраля 2012

Попробуйте установить для параметра focusInvalid значение false:

$("#form").validate({
    focusInvalid: false
});

Фокусировать последний активный или первый недопустимый элемент при отправке через validator.focusInvalid (). Последний активный элемент - тот, который имел фокус при отправке формы, избегая того, чтобы украсть ее фокус. Если элемент не был сфокусирован, первый в форме получает его, если эта опция не отключена.

Пример: http://jsfiddle.net/3JtBF/

...