Обнаружение автоматического заполнения на форме вводится с jQuery

У меня есть форма, которая обнаруживает, если все текстовые поля допустимы на каждом keyup () и фокус (); если они будут все допустимы, то это позволит кнопке отправки для пользователя нажать. Однако, если пользователь заполняет один из вводов текста с, браузеры автоматически заполняют функцию, он препятствует тому, чтобы кнопка отправки была включена.

Существует ли способ обнаружить, если какой-либо вход изменился независимо от того, как он был изменен, с помощью jQuery?

32
задан Ryan 22 July 2010 в 23:09
поделиться

1 ответ

Вы можете использовать функцию jQuery .change () .

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

$(document).ready(function() {
   // validate form once, just to be sure (if valid, activate submit button)
});
...
<form>
  <input class="target" type="text" value="Field 1" />
  <select class="target">
    <option value="option1" selected="selected">Option 1</option>
    <option value="option2">Option 2</option>
  </select>
</form>
<script type="text/javascript">     
    $('.target').change(function() {
        alert('Something changed');
        // Try validating form again (if valid, activate submit button)
    });
</script>

План B

Другой вариант - всегда иметь кнопку отправки кликабельной, но использовать .submit () , чтобы привязать ее к валидатору формы. Затем, если форма действительна, продолжайте. Если форма НЕ является действительной, используйте .preventDefault () , чтобы остановить отправку формы ... и вы также отобразите предупреждающее сообщение с указанием отсутствующих полей.

0
ответ дан 27 November 2019 в 20:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: