0

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

4

4 回答 4

1

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

于 2008-09-26T15:01:43.387 回答
0

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

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

我认为它会在场外无效。或者这可能是服务器操作间接设置它。在 JSF 中,类似这样的东西。

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

你在服务器上有什么,你的浏览器是什么?

于 2008-09-26T14:58:06.140 回答
0

我会尝试捕获 HTML 发布请求以查看是否包含输入字段。如果是,那么您的服务器有问题。

但是关于您所说的,我认为这是因为您的浏览器处理 JavaScript DOM 的方式存在冲突。如果您在表单上省略了提交按钮并且它可以工作,则可能会出现这种情况。

于 2008-09-26T15:01:16.180 回答
0

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

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

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

于 2008-09-26T15:02:56.127 回答