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