jQuery远程验证强制双击提交表单

时间:2011-01-21 21:45:09

标签: jquery forms validation

我正在尝试远程验证表单字段。如果在我在页面上时该字段获得焦点,则一切都很有效。但是,如果字段从不获得焦点,则表单要求我单击“提交”按钮两次才能成功提交。

我希望它只是验证字段是否获得焦点,或者以某种方式阻止表单需要两次单击才能提交​​。有人有什么想法吗?

$("#form1").validate({
    rules: {
        project: {
            required: true,
            remote: "check.php"
        }
    },
    messages: {
        project: {
            required: "Required.",
            remote: "Check Failed."
        }
    },
});

<input type="text" name="project" id="project" value="X"/>

4 个答案:

答案 0 :(得分:10)

Instead of making ajax setup to false you can just set "project" "remote" async to false like this

$("#form1").validate({
    rules: {
        project: {
            required: true,
            remote: {url:"check.php", async:false}
        }
    },
    messages: {
        project: {
            required: "Required.",
            remote: "Check Failed."
        }
    },
});

答案 1 :(得分:5)

提交按钮的名称是什么? jQuery Validate不喜欢名称“submit”。我将提交按钮的名称更改为“提交者”,问题就消失了。查看此链接:https://github.com/jzaefferer/jquery-validation/issues/58

答案 2 :(得分:4)

您可以通过添加以下内容来解决此问题:

$.ajaxSetup({
    async: false
});

在调用验证插件之前。

答案 3 :(得分:2)

我遇到了同样的问题 remote:{url:“check.php”,async:false} 为我工作。