2013-06-21 51 views
1

如果我使用表單並提交按鈕,那麼瀏覽器可以記住文本輸入字段,但是如果我只使用輸入類型,沒有表單並且按鈕動作是onclick事件,那麼瀏覽器會不緩存用戶的輸入值。輸入記住不使用表格

有沒有辦法讓瀏覽器在不使用實際提交的情況下緩存「表單」輸入?

下面是示例代碼,顯示我的頁面。當用戶點擊搜索時,會調用一個javascript函數來填充div「結果」。除了沒有瀏覽器的所有東西都會工作,緩存文本輸入

<h2>Device Cleaner</h2> 
<p>Enter MAC Address of device to clean:</p> 
<input type="text" id="entry" name="macaddr" onkeypress="keyChecker(event)"> 
<button type="button" id="start" onclick="query()">Search</button> 
<div id="results"></div> 
</body> 
</html> 

回答

1

無法強制瀏覽器保存這些信息。只要您想要保存的輸入相對較短,您就可以使用JavaScript來存儲包含此信息的Cookie。然後,在將來查看該頁面時,可以使用這些cookie填充輸入字段。儘管謹慎敏感的信息。

或者,您可以通過AJAX請求將用戶輸入存儲在您自己的服務器上。

+0

一個警告:安全建議是,一般情況下,您不應該在localStorage/cookies /任何內容中保存任何敏感信息,如密碼或社會安全號碼。這意味着對於這種類型的許多形式,密碼字段是唯一不被記住的字段。 – Katana314

+0

因爲我只有一個字段可以緩存,所以我選擇了這條路線。安全性並不太受關注,因爲在我的情況下,這是一個內部網頁,無法在我的建築物外訪問。 – Aaron

0

有沒有辦法讓瀏覽器仍然緩存「形式」的投入,而無需使用實際提交?

什麼用過去的工作號

被提交到一個空白頁,但是,這並不在所有瀏覽器正常工作了。

0

是否可以使用JavaScript中的異步請求,從而使網頁不刷新實際上/提交更新的「結果」格,但結果只是直接顯示?

這將涉及攔截表單的提交操作,並在您的服務器上編寫不同的端點以執行搜索,而只需返回表單所需的數據。對我來說,在我的回答中描述有點多,但這是人們通常爲了更好的可用性而做的事情;你會發現一個更好的教程比我可以通過谷歌搜索「ajax表單提交」更好。

+0

我試過了,它在Firefox中運行得很好,但不是Chrome或IE。 – Aaron

+0

沒有特別的原因,這不應該適用於所有的瀏覽器。您可能想要打開一些Javascript調試工具來確定哪裏出了問題。 (對於任何瀏覽器的最新版本,只需按F12打開調試器) – Katana314

+0

要清楚,表單數據被髮送,並且檢索並顯示答案。 **但是**只有firefox緩存表單數據。其他瀏覽器上沒有javascript錯誤。 – Aaron