簡體   English   中英

在注銷某人之前如何提交包含數據的表單?

[英]How to submit form with data before logging someone out?

我正在將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發布請求,以查看是否包含輸入字段。 如果它們是您的服務器有問題。

但是關於您所說的,我認為這是因為您的瀏覽器處理JavaScript DOM的方式存在沖突。 如果您在表單上省去了提交按鈕,則可能會出現這種情況。

submit的方法HTMLFormElement對象應該只提交表單,因為如果用戶點擊了提交按鈕。 因此,如果將表單的action屬性設置為# ,則似乎只是刷新頁面,因為它將表單數據發送到同一頁面。

奇怪的是,當您將action屬性設置為另一個頁面時,它仍然會這樣做。

表單的method屬性是否設置為getpost

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM