html提交按下并刷新

Posted

技术标签:

【中文标题】html提交按下并刷新【英文标题】:html submit pressed and refresh 【发布时间】:2012-11-17 02:06:58 【问题描述】:

我有一个带有下拉选择和提交按钮的表单的网页。该页面还具有自动刷新功能(每 10 秒)以检索和显示来自服务器的最新信息。单击提交按钮时,会弹出一个带有是/否选项的确认警报。用户然后选择yes 将信息提交到服务器。提交到服务器工作

如果在刷新的同时点击提交,会弹出确认对话框,但不提交表单信息。确认框是否仍与表单绑定?

这是我的代码。它可能不完全相同,因为我的代码是离线的,但 geess 是

<html>
<head>
    <script type="text/javascript">
    function confirmSubmit(message)
    
        var ans = confirm(message);
        if (ans == true)
        
            return true;
        
        else
        
            return false
        
     //end of function
    </script>
</head>
<body>
    <form name="myForm" method="GET" action="GET">
        <input type="submit" name="btnSubmit" value="submit" onclick="javascript:confirmSubmit()" />
    </form>
</body>
</html>

【问题讨论】:

能否使用 AJAX 刷新页面中需要刷新的部分,从而避免竞态条件? 你真的不应该自动刷新页面。改用 AJAX 轮询新信息 是的,我实现了 ajax 并且它可以工作。但我很好奇这种刷新是如何工作的。我在页面顶部添加了一个 JS 计时器和一个每 1 秒递增一次的变量,并将其打印在确认对话框中。奇怪的是,如果在刷新发生的同时按下提交按钮,我可以在确认对话框上看到从当前实例继续递增的值。它没有被重置为零。这意味着它还没有到达网页的新实例 我意识到这个问题适用于任何其他在线网页。例如,我尝试在 phpmyadmin 上创建数据库。我将文本框留空,然后单击 go 创建一个新数据库,同时按 f5。我意识到 javascript 对话框弹出提醒我输入数据库名称,但它看起来与通常的警报框不同。似乎发生这种情况时,警报框的行为会有所不同。这和孩子父母的事情有关吗? 【参考方案1】:

最好的办法是摆脱自动刷新,这样您就不必担心没有提交表单。使用 AJAX 来获取需要更新的新信息,这样页面就不需要刷新。

如果出于某种原因您不想删除自动刷新,我会做的是: 无论您在哪里进行自动刷新,请检查下拉/表单是否正在显示,如果是,请不要自动刷新。

【讨论】:

以上是关于html提交按下并刷新的主要内容,如果未能解决你的问题,请参考以下文章

检测 F5 被按下并刷新

防止HTML表单提交刷新页面并触发另一个功能[重复]

提交时停止表单刷新页面

防止在 jQuery 委托“提交”操作上提交 IE 表单

如何使用 redux 模式在 react native 中刷新组件?

按下按钮后如何使“提交”表单从 Ajax 工作