Jquery验证:提交按钮必须单击两次才能提交表单(fire fox)

时间:2014-08-05 08:41:20

标签: javascript jquery ajax validation firefox

我正在使用jquery validation plugin进行美国邮政编码检查,工作正常, 但是我必须按下提交按钮TWICE 才能提交表单,

注意:如果我按Enter键表示它正确提交表单,但它不适用于click event

已经检查了这个stackoverflow答案,但他们没有帮助我

Why do you have to submit twice before jQuery Validate submitHandler is triggered?

jquery validate need to click submit twice to submit form

jQuery using .on and .validate must submit form twice to validate

以下是我的Javascript代码

var ans;
$(document).ready(function(e)
        {
           jQuery.validator.addMethod("zipcode", function(e)
            {
               $.ajax(
                        {
                            url: "http://zip.elevenbasetwo.com",
                            cache: false,
                            async: false,
                            dataType: "json",
                            type: "GET",
                            data: "zip=" + $("#zip").val(),
                            success: function()
                            {
                                ans = true;
                            },
                            complete: function()
                            {
                                ans = true;
                            },
                            error: function()
                            {
                                ans = false;
                            }
                        }
                );
                return ans;
            });
            $("#register-form2").validate({
                debug: true,
                onkeyup: false,
                rules: {
                    zip: {
                        required: true,
                        zipcode: true,
                        minlength: 5
                    },
                    email: {
                        required: true,
                        email: true
                    }
                },
                messages: {
                    zip: {
                        required: "Please enter a USA zip code",
                        zipcode: "Please enter a valid USA zip code"
                    },
                    //  zip: "Please enter a valid USA zip code.",
                    email: "Please enter a valid email address."
                },
                submitHandler: function(form)
                {
                    alert('hi');
                    form.submit();
                }
            });
        });

如果我在自定义方法中使用ajax函数,请标记,而不是它正常工作,但我无法解决。

下面是我的HTML code

<form action="<?= $_SERVER['PHP_SELF'] ?>" method="post" class="wpcf7-form" id="register-form2" novalidate>
<input name="email" required id="email" type="text" placeholder="Email*">
<input type="text" name="zip" id="zip" required size="40" maxlength="15" placeholder="Zip code* (USA only)">
<input name="Form_submit" class="btn btn-primary wpcf7-form-control  wpcf7-submit" id="Submit" value="Sign-up" type="submit">
</form>

0 个答案:

没有答案