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有一点看法,我现在正在研究。