Как после отправки формы e.preventDefault () запустить какой-либо сценарий и продолжить проверку html5? - PullRequest
0 голосов
/ 14 января 2020

У меня есть класс c HTML форма. После нажатия кнопки «Отправить» я хочу запустить свой скрипт, поэтому у меня есть jquery:

$(document).on('click', '.myForm #btnSubmit', function(e) {

    e.preventDefault();

    // some scripts

, поэтому перед отправкой формы у меня есть e.preventDefault();, после этого запускаются мои скрипты .... И после моих скриптов готово, я хочу продолжить html5 проверка как обязательное поле et c ...

Как я могу продолжить? Я попробовал click(), но это чепуха, потому что это l oop - снова есть e.preventDefault(); и так далее ...

Короче: клиент нажимает кнопку отправки, мне нужно запустить некоторые мои javascript скриптов и если результаты в порядке, то мне нужно продолжить стандартное поведение - html5 проверка ...

Ответы [ 3 ]

1 голос
/ 14 января 2020

Вы можете использовать html5 checkValidity() для проверки html5 действительности формы:

var $form = $('.myForm');

$form.on('click', '#btnSubmit', function(e) {
  e.preventDefault();

  // your scripts

  if ($form[0].checkValidity()) {
    $form.submit();
  }
});

Если подумать, вам даже не нужно e.preventDefault() поскольку ваша форма не будет отправлена, если проверка все равно не удастся, так что если вы можете просто запустить свои сценарии, а затем позволить проверке html5 отправить форму или нет

Если вы хотите запускать только свои скрипты, если ваш Форма действительна, тогда вы можете использовать вышеупомянутую функцию, и если и положить ваши сценарии внутри if.

0 голосов
/ 14 января 2020

Хорошо, понял!

Создайте еще один скрытый тип ввода submit и после запуска собственных скриптов сделайте для него триггер click() ...

Код:

HTML :

<form>
    <input type='text' required>
    <input id='submitHidden' style='display: none' type='submit'>
    <input id='btnSubmit' type='submit'>
</form>

JQUERY:

$(document).on('click', '.myForm #btnSubmit', function(e) {

    e.preventDefault();

    // some scripts

    // if some script allow continue with html5 validation then:

    $("#submitHidden).click();

jsFiddle

0 голосов
/ 14 января 2020

Вы можете запустить отправку формы, выбрав ее с помощью селектора jQuery, а затем вызвав .submit().

Таким образом, весь код будет выглядеть так:

$(document).on('click', '.myForm #btnSubmit', function(e) {

    e.preventDefault();

    // your scripts

    $(".myForm").submit();
}

Но обратите внимание Если вы используете этот код, вы все равно можете отправить форму без ваших сценариев, выбрав кнопку «Отправить» с помощью клавиши TAB, а затем, например, нажав «ПРОБЕЛ».

...