即使有人选择浏览器,Javascript也会停止提交提交按钮 "prevent this page from creating additional dialogs”

标签 javascript jquery html forms firefox

我有这个代码用于验证某些内容:

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

如果您继续以表单形式提交,则在第二次或第三次时,根据浏览器软件,您可以选择“阻止此页面创建其他对话框”,但在 Chrome 中,它仍然不会提交表单但在其他程序(例如 Firefox)中,它会停止alert() 对话框,但也允许其提交,从而导致问题。

如果此alert()仍在激活但由于对话框禁用而未显示,如何阻止表单提交?

提前致谢。

最佳答案

看来您在 Firefox 中遇到了潜在的错误:

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

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

解决这个问题的一种方法是使用 try/catch block (尽管它确实感觉有点 hacky):

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

  return false;
}

此外,如果用户禁用警报,然后不知道出了什么问题以及为什么他们的表单未提交,您可能会遇到可用性问题。最好将消息显示在页面本身的某个位置。只是我的两分钱。

关于即使有人选择浏览器,Javascript也会停止提交提交按钮 "prevent this page from creating additional dialogs”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24986991/

相关文章:

javascript - jQuery,单击其可单击容器内的元素 - 如何覆盖

html - 是否会下载隐藏在移动设备上的 iframe?

javascript - jQuery 包含大量 'if' 语句。必须有一个更简洁的方法来做到这一点?

javascript - 如何将 for 循环添加到以下 JavaScript 以验证输入?

javascript - 单击时显示 Superfish 下拉菜单

javascript - 检查元素是否可见

jquery - 提交表单后切换提交按钮?

javascript - 创建时分配动态 <div> 唯一 ID

javascript - 将坐标加载到我的网页中的谷歌地图

javascript - 删除类不起作用