我的页面中有一个简单的表格,如图所示。
有没有办法避免警报?我发现它很烦人,在我的情况下,如果我重新加载表单,我不会丢失任何重要信息。
<form name="theForm" method="get"> <!-- Changed from "post" to "get" but alert keeps showing -->
Start Point (
<input type="text" name="pt0x" size="4" onkeydown="keyDownPt(event, document.theForm.pt0x.value, 0, 'x')"/>,
<input type="text" name="pt0y" size="4" onkeydown="keyDownPt(event, document.theForm.pt0y.value, 0, 'y')"/> ); </br>
...
</form>
我没有“发送”按钮,因为我更新了我的onkeydown事件。这可能是原因吗?
答案 0 :(得分:2)
在表单标记而不是POST上使用GET作为方法。
由于POST用于将数据“上传”到服务器,因此浏览器会正确地警告用户重新发布表单,但如果您只是获取数据,浏览器会认为这是重复的安全操作。
编辑:我误读了问题中的对话框。这不是关于重新发布,而是关于丢弃表单数据...无论如何都尝试使用GET而不是POST(如果你还没有这样做),看看它是否有任何影响。
EDIT2 :如果是使用javascript禁用它的任何简单方法(用户可能在浏览器中禁用),我会感到惊讶,因为它提醒您即将丢弃数据。如果用户想要重新加载页面,浏览器会警告表单将被丢弃,但用户可以将其解除。
无论如何,这不应成为问题。如果由于某种原因需要重新加载应用程序以供实际生产使用,请尝试重写程序以便在不重新加载的情况下工作(因为这可能会导致浏览器重新下载代码)。例如。如果您只想重新加载以重置表单,只需添加一个重置按钮。
答案 1 :(得分:1)
由于你实际上没有对它做任何事情,你可以完全摆脱这个形式。
编辑完整性:不使用表单标签是完全有效的HTML,并验证为HTML4严格,HTML5和XHTML过渡。 W3C验证器为here。
答案 2 :(得分:0)
我想我会尝试停用提交按钮,因为您并不打算首先发布数据。
这样做的简单(和丑陋)方法是在表单的onsubmit
处理程序中添加一个错误的返回状态,如下所示:
<form onsubmit="return false;">
好运!