我正在将document.form.submit()函数用于相当大的输入表单(数百个字段,它是一个库存应用程序)。我在用户闲置了一段时间之后打电话给我,我想保存他们输入的任何数据。当我尝试这个页面重新加载(动作是#)但是在字段中键入的任何新文本都没有在REQUEST中传递,所以我不能把它放在数据库中。是否有一些根本原因导致这种情况发生,或者我的代码不能很好地协同工作(我使用EXTJS网格视图来显示表单和用于跟踪空闲时间的库)? 谢谢, 罗伯特

有帮助吗?

解决方案

我想我把答案放在这里。我发现这样做:     setTimeout('frm.submit();',2000); 导致页面重新加载但未提交表单。当我这样做时:     frm.submit(); 表格已提交,数据已通过。我不知道为什么第一种方法不起作用,但我不需要知道:)

其他提示

服务器可能会排除输入值。假设您服务器上的页面如下所示:

<form action="/page.cgi">
  ...
  <input name="Fieldx" value=""/>
</form>

我认为这将使该领域无效。或者这个服务器操作可能是间接设置它。在JSF中,就像这样。

<input name="Fieldx" value="#{bean.nullProperty}"/>

您在服务器上有什么以及您的浏览器是什么?

我会尝试捕获HTML post请求以查看是否包含输入字段。如果他们是你的服务器有问题。

但是就你所说的而言,我认为这是因为浏览器处理JavaScript DOM的方式存在冲突。如果您在表单上省略提交按钮并且有效,则可能出现这种情况。

HTMLFormElement 对象的 submit 方法应该只提交表单,就像用户点击了提交按钮一样。因此,如果表单的 action 属性设置为,它似乎只是刷新页面,因为它将表单数据发送到同一页面页。

奇怪的是,当你将action属性设置为另一个页面时它仍然会这样做。

表单的 method 属性是否设置为获取 post

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top