Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/468.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/bash/17.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停止提交按钮,即使有人选择浏览器“阻止此页面创建其他对话框”_Javascript_Jquery_Html_Forms_Firefox - Fatal编程技术网

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。这将如何再次实现?