При form.submit() опускается проверка полей на required

311
20 апреля 2017, 16:57

Есть форма с инпутом, который обьязателен для заполнения

<form action="" id="go">
    <input type="text" name="name" class="" placeholder="set-name" required="">
    <input type="submit">
</form>

И если через javascript сделать submit, то форма отправляется, без проверки на required

document.getElementById("go").submit();

А если нажать на кнопку "Отправить" - тогда проверка есть, и не отправляет форму пока не заполнишь...

Почему так происходит, почему js не проверяет поля формы?

Chrome 57.0.2987.133

Firefox 52

Answer 1

При вызове метода .submit() проверка на валидность не осуществляется. Предполагается, что при ручной отправке это сделано самостоятельно. Потому не забываем вызывать метод .checkValidity() перед отправкой:

let $form = document.getElementById('form'),
    $submitBtn = document.getElementById('submit');
$submitBtn.addEventListener('click', function() {
  if( $form.checkValidity() ) {
    $form.submit();
  } else {
    // ваша обработка ошибок
  }
});

Источник:

Метод submit

Answer 2

Можно не вызывать событие submit, а имитировать событие нажатия кнопки, тогда проверка должна быть. С помощью jQuery это можно сделать так:

$("#go input[type=submit]").click();
READ ALSO
Многомерный объект JS

Многомерный объект JS

Дана строка с опрпоследовательностью

261
Почему не верно срабатывает проверка на тип данных?

Почему не верно срабатывает проверка на тип данных?

Ну для начала давайте разберемся с тем, что конструкторы стандартных типов не являются этими самыми типами как в других языкахОни все являются...

216
Форма без preventDefault отправляется, а с preventDefault не отправляется. Что делать?

Форма без preventDefault отправляется, а с preventDefault не отправляется. Что делать?

Есть форма, которая должна отправляться без перезагрузки, для этого я использую такой jquery код:

299
Настраиваемый аудиоплеер на Javascript

Настраиваемый аудиоплеер на Javascript

Я перерыл штук 100 разных плееров в гугл, но это что-то смешноеЯ был уверен что легко найду много библиотек для использования, а не смог найти...

257