Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/477.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
Javascript jQuery表单没有';更正验证失败后,请不要提交_Javascript_Jquery_Forms_Validation - Fatal编程技术网

Javascript jQuery表单没有';更正验证失败后,请不要提交

Javascript jQuery表单没有';更正验证失败后,请不要提交,javascript,jquery,forms,validation,Javascript,Jquery,Forms,Validation,我有一个简单的表单,询问您是否确定要提交它 $(document).ready(function(){ $("form#myform").on('submit', function(e) { if (!confirm('Are you sure?')){ e.preventDefault(); } else { console.log("submitting..."); } }); }); 提交表单,

我有一个简单的表单,询问您是否确定要提交它

$(document).ready(function(){
  $("form#myform").on('submit', function(e)
  {
      if (!confirm('Are you sure?')){
        e.preventDefault();
      }
      else {
        console.log("submitting...");
      }
   });
});
提交表单,点击“确定”进入“确定”提示,表单提交即可

--刷新页面,重新开始--

提交表单,点击“取消”进入“确定”提示。表单未按预期提交。再次提交表单,点击“确定”到“确定”提示,表单仍然不提交,“提交…”被记录到控制台。从现在开始,表单将永远不会提交,直到我刷新页面并第一次点击“ok”提示

如果我交换

e、 预防默认值()

返回false

没有任何变化,完全相同的行为

我完全被难住了。我做错了什么

编辑: 这里有一个JSFIDLE链接。该提琴中的HTML和JavaScript与我的项目中的代码完全相同。我上面描述的问题在JSFIDLE上运行时不会发生,但在我的项目中会发生。

尝试这种方式

function SendForm(){
    if (!confirm('Are you sure?')){
        return false;
    }
    else {
        console.log("submitting...");
        return true;
    }
}
将函数sendForm放在submit按钮中,如下所示

<input type="submit" value="submit" onclick="return SendForm();" />


显然没有在控制台上显示任何内容,因为当您提交表单时,浏览器会重新加载您的代码,这是一个JSFIDLE演示。我真的复制并粘贴了,一定有其他javascript影响了页面上的某个地方的表单

jsFiddle link below


也可能值得检查浏览器中的网络日志,以查看表单是否确实正在提交

出现问题的原因是我的团队中的另一名开发人员编写了一段代码,该代码连接到每个表单并缓存其提交处理程序的结果,而我对此一无所知。由于我的表单在验证失败时将返回false,因此即使通过验证,该结果也将被缓存以供下次尝试提交

在不想破坏他的代码的情况下,我的解决方案是在我的表单中添加一个属性“no cache”,我更新了他的方法来检查该属性。这解决了我的问题


感谢所有帮助过我的人,我非常感激

您可以发布一个堆栈片段或JSFIDLE来显示问题吗?您确定它不会提交吗?你查过网络请求日志了吗?这可能是后端问题。提供的代码似乎不包含任何问题。提交按钮的名称是否为
submit
?@atmd,OP表示表单在第一次尝试时提交就可以了。我认为这是一个后端状态问题。@MaximKumpan 100%确定它根本不提交。这不是后端问题,我在OP中发布了一个JSFIDLE,解释了代码在那里工作,但在我的项目中没有。根本没有提交表单(网络日志中没有任何内容)。然而,您对可能会弄乱它的其他javascript有一点看法,我现在正在研究。