Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery远程验证强制双击以提交表单_Jquery_Forms_Validation - Fatal编程技术网

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

jQuery远程验证强制双击以提交表单,jquery,forms,validation,Jquery,Forms,Validation,我正在尝试远程验证表单字段。当我在页面上时,如果字段获得焦点,那么一切都会很好。但是,如果该字段从未收到焦点,则表单要求我单击“提交”按钮两次才能成功提交 我希望它要么只验证字段是否接收到焦点,要么以某种方式停止表单需要两次单击才能提交。有人有什么想法吗 $("#form1").validate({ rules: { project: { required: true, remote: "check.php"

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

我希望它要么只验证字段是否接收到焦点,要么以某种方式停止表单需要两次单击才能提交。有人有什么想法吗

$("#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"/>
$(“#form1”)。验证({
规则:{
项目:{
要求:正确,
远程:“check.php”
}
},
信息:{
项目:{
必选:“必选。”,
远程:“检查失败。”
}
},
});

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

$.ajaxSetup({
    async: false
});

在调用验证插件之前。

提交按钮的名称是什么?jqueryvalidate不喜欢“submit”这个名称。我将提交按钮的名称改为“submitter”,问题就消失了。查看此链接:

我遇到了相同的问题,并且
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."
        }
    },
});
远程:{url:“check.php”,异步:false}
为我工作。

你有没有弄清楚这件事的真相?它应该有用的。您是否尝试过像示例中那样只使用一个输入字段?我也遇到过同样的问题,单击1可对字段进行远程验证。单击2提交表单。为了解决这个问题,我把提交从一个标签改成了一个标签。现在单击它进行远程验证,成功后发布表单。使请求不异步可能会冻结整个UI。小心。当然,@Péde Leão的答案是更好的,我确认这是有效的。其他解决方案(建议添加“async:false”)实际上会在表单包含其他必填(必需)字段时导致问题。当“async:false”时,“required”字段将被忽略,用户可以绕过它并将字段留空。将submit按钮名称替换为“submitter”可修复此问题。