【问题标题】:HTML Form submission with javascript confirm delays on Google Chrome使用 javascript 提交 HTML 表单确认 Google Chrome 上的延迟
【发布时间】:2011-11-25 00:11:33
【问题描述】:

我意识到在我的开发过程中,在 Google Chrome 上通过 javascript 确认提交表单时出现了一些延迟。

所以我尝试使用小 html 页面进行测试,以确保延迟是否是由我的应用程序引起的。但它仍然发生在测试页面中。

我只是不想确认表单的 onsubmit 事件,因为会有多个提交用于不同的目的。

这是我的测试 html。

<html>
<head><title>Test</title></head>
<body>
<script type="text/javascript">
    var currentTime = new Date()
    document.write(currentTime.getMilliseconds());
</script>
<form name="input" method="post">
<input type="submit" value="Submit" onclick="javascript:return confirm('Are you sure to submit?');" />
</form>
</body>
</html>

我怎样才能避免这种延迟?我需要改变什么吗?

如果这是由于我的 html 构造不正确或缺少某些内容引起的,请更正。

谢谢。

【问题讨论】:

  • 如果在 onclick 方法中显示任何对话框,Chrome 会延迟提交表单...
  • 我完全不懂这个问题。延迟在哪里?您的测试文件如何分析这种延迟?另外,我会避免使用“输入”作为表单名称。
  • @Elangovan,你是说这是正常的吗?还是必须在应用程序中更改某些内容?
  • @graphicdivine,您可以通过看到按钮上方的文本注意到这一点。它应该在您单击确认对话框上的确定后立即更改。请务必在 Google Chrome 上进行测试。
  • @aunghn 你的代码没有问题..延迟来自chrome。每当显示对话框时,它都会检查页面是否显示太多对话框,并为用户提供一个复选框以防止页面出现更多对话框。我猜延迟是由于这个检查,但我不确定......

标签: javascript html forms google-chrome confirm


【解决方案1】:

您的代码存在两个问题。不太重要的是您在onclick 属性中使用了javascript:,这不是必需的。 on* 属性已被隐式评估为 JavaScript - 它们不像超链接。

其次,也是最重要的一点,您在屏幕上显示的计时器值没有显示您认为它的作用。它只是获取当前日期和时间,并提取毫秒分量。这实质上为您提供了一个介于 0 和 999 之间的随机数。如果您使用它来确定提交延迟,那您就错了。请放心,一旦您在确认对话框中按 OK,表单就会提交,您遇到的任何延迟都完全是由于页面加载时间(假设没有页面卸载脚本)。

【讨论】:

    【解决方案2】:

    奇怪的是,我遇到了和你类似的问题,但它也出现在 FF 中......经过修改后我想出了:

    <form name='doClear' action='index.php' method='post' >
        <input type='submit' value='Clear All' onclick='return confirm(\"Are you sure you want to clear all? This cannot be undone!\");' />
    </form>";
    

    这对我来说立竿见影。我不确定我的问题从何而来,但现在一切正常。祝你好运。

    【讨论】:

      猜你喜欢
      • 2016-10-19
      • 1970-01-01
      • 2015-08-16
      • 1970-01-01
      • 2019-10-14
      • 2019-03-12
      • 2016-08-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多