Подключаемый модуль JQuery Validation вызывает двойной щелчок, чтобы отправить форму - PullRequest
2 голосов
/ 13 марта 2011

Мне нужно дважды нажать кнопку «Отправить» в моей форме, чтобы отправить ее.Как сделать так, чтобы пользователь только нажимал «Отправить»?Однако я не хочу, чтобы onfocusout или onkeyup были включены.Я просто хочу, чтобы моя форма была подтверждена нажатием только кнопки отправки.

    $(document).ready(function() {
        $.validator.setDefaults({
          onfocusout: false,
          onkeyup: false
        });

        $.validator.addMethod("username", function(value, element) {
           return this.optional(element) || /^[a-z]+$/i.test(value);
            }, "Your username may only contain letters");

        var validator = $("#registerForm").validate({
          showErrors: function(errorMap, errorList) {
            $("#registerForm").find("input").each(function() {
                $(this).removeClass("error");
            });
            $("#errorcontainer").html("");
            if(errorList.length) {
              $("#errorcontainer").html(errorList[0]['message']);
              $(errorList[0]['element']).addClass("error");
              $('#errorcontainer').css('display','none');
              $('#errorcontainer').fadeIn(400);
            }
            else {
              $('#errorcontainer').css('display','none');
            }
          },

          rules: {
            username: {
              required: true,
              rangelength: [3,15],
              remote: "usernamevalidation.php"
            },
            password: {
              required: true,
              rangelength: [5,20]
            },
            passwordconfirm: {
              required: true,
              equalTo: "#password"
            },
            email: {
              required: true,
              email: true,
              remote: "emailvalidation.php"
            }
          },

          messages: {
            username: {
              required: "You must enter a username.",
              rangelength: "Your username must be between {0} and {1} letters.",
              remote: "Your desired username is already in use."
            },
            password: {
              required: "You must enter a password.",
              rangelength: "Your password must be between {0} and {1} letters."
            },
            passwordconfirm: {
              required: "Your passwords must match.",
              equalTo: "Your passwords must match."
            },
            email: {
              required: "You must enter an email address.",
              email: "Your email address is not valid.",
              remote: "This email is already in use."
            }
          }
        });
      });

Ответы [ 4 ]

2 голосов
/ 02 мая 2011

Привет, я использовал shubmitHandler, который поставляется с jquery validate

submitHandler: function(form) { form.submit(); return false });

Надеюсь, это поможет вам

1 голос
/ 22 апреля 2011

Вот что исправило это для меня:

К вашему сведению, я также использую пользовательский интерфейс jQuery (v1.8.11) без проблем, связанных с вышеуказанным:

Надеюсь, это поможет!

0 голосов
/ 04 мая 2017

У меня возникла та же проблема, и я решил ее, добавив в свой сертификат следующее:

$("#myform").validate({
  onfocusout: false
});

Подробнее см. На https://jqueryvalidation.org/validate/

0 голосов
/ 16 января 2015

Используйте такой пульт

remote:{
url: "emailvalidation.php",
async:false
}

Здесь «async: false» позволяет отправить форму при первом клике, Надеюсь, это поможет вам.

...