Javascript停止提交按钮,即使有人选择浏览器“阻止此页面创建其他对话框”
我使用以下代码来验证某些内容:Javascript停止提交按钮,即使有人选择浏览器“阻止此页面创建其他对话框”,javascript,jquery,html,forms,firefox,Javascript,Jquery,Html,Forms,Firefox,我使用以下代码来验证某些内容: if (document.getElementById('ANYNUMBER').innerHTML > 5){ alert("You are doing something wrong."); return false; } 如果您在第二次或第三次提交表单,根据浏览器软件的不同,它会让您选择“阻止此页面创建其他对话框”,在Chrome浏览器中,它仍然不会提交表单,但在Firefox等其他程序中,它会停止警报对话框,但也允许
if (document.getElementById('ANYNUMBER').innerHTML > 5){
alert("You are doing something wrong.");
return false;
}
如果您在第二次或第三次提交表单,根据浏览器软件的不同,它会让您选择“阻止此页面创建其他对话框”,在Chrome浏览器中,它仍然不会提交表单,但在Firefox等其他程序中,它会停止警报对话框,但也允许它提交,从而导致问题
如果此警报仍处于激活状态,但由于禁用对话框而未显示,如何防止表单提交
提前感谢。看起来您在Firefox中遇到了一个潜在的bug: 问题是,一旦用户禁用了警报,尝试调用警报将在Firefox中引发异常,而在Chrome中则会忽略它 解决这个问题的一种方法是使用try/catch块,尽管它确实感觉有点粗糙:
if (document.getElementById('ANYNUMBER').innerHTML > 5){
try {
alert( "You are doing something wrong." );
}
catch(e) {
}
return false;
}
此外,如果用户禁用此警报,然后不知道是什么问题以及他们的表单为什么没有提交,那么您可能会遇到可用性问题。最好将消息显示在页面本身的某个位置。不过,只需我的两分钱。将e.preventDefault添加到表单提交功能中。这将阻止默认提交,好吗如果表单有效,您才需要提交。另外,您应该使用parseInt或其他什么,因为innerHTML是一个字符串。为了清楚起见,只需使用alert以外的其他内容。谢谢@go oleg。您能否建议如何在DIV中使用PHP或Javascript,而不是使用与在如果你能解释一下,我将不胜感激,这将是一个很好的例子,让其他人看看如何做得更好。谢谢。我知道你可以用display:none隐藏DIV;然后使用javascript激活相应的DIV。这将如何再次实现?