Javascript停止提交按钮,即使有人选择浏览器&阻止此页面创建额外的对话框"

Javascript stop submission of submit button even if someone selects browser "prevent this page from creating additional dialogs”

本文关键字:创建 对话框 浏览器 按钮 提交 选择 Javascript      更新时间:2023-09-26

我用下面的代码来验证一些东西:

    if (document.getElementById('ANYNUMBER').innerHTML > 5){
        alert("You are doing something wrong.");
return false;
    }

如果你继续在一个表单中提交,在第二次或第三次,取决于浏览器软件,它会给你一个选项来选择"阻止这个页面创建额外的对话框",在Chrome中它仍然不会提交表单,但在其他程序,如Firefox中,它会停止警告()对话框,但也允许它提交导致问题。

如果这个alert()仍然被激活,但由于禁用对话框而没有显示,我如何防止表单提交?

看起来你在Firefox中遇到了一个潜在的错误:

https://bugzilla.mozilla.org/show_bug.cgi?id=633154

问题是,一旦警报被用户禁用,尝试调用alert()将在Firefox中抛出异常,而在Chrome中它将忽略它。

解决这个问题的一种方法是使用try/catch块(尽管感觉有点粗糙):
if (document.getElementById('ANYNUMBER').innerHTML > 5){
  try {
    alert( "You are doing something wrong." );
  }
  catch(e) {
  }
  return false;
}

另外,如果用户禁用警报,你可能会遇到可用性问题,然后不知道哪里出了问题,为什么他们的表单没有提交。也许最好将信息显示在页面本身的某个位置。