2016-08-12 35 views
0

在常規文本輸入字段中,我希望通過雙擊它來查看我在鉻中輸入的內容的歷史記錄。文本輸入字段不能使用鉻字段歷史記錄

我們有一些字段在Angular JS的頁面上呈現。但是,他們從來沒有任何歷史記錄,雙擊也不會顯示任何結果。

在簡短測試中,似乎添加name屬性不會恢復此功能。

這是因爲該字段從未正式通過表單元素提交?如果是這樣,這怎麼解決?

我在google上能找到的這個問題的所有結果都與反例有關,其中「off」被忽略。

編輯:這裏是一個例子。如果我發送POST請求,但可以將該值添加到歷史記錄中,但不能添加到未在表單中提交的字段中:https://jsfiddle.net/gtuzy4p2/2/

這裏還有一個指向規範的鏈接,詳細說明如何使用該屬性,而不是瀏覽器應該如何保存值。 https://html.spec.whatwg.org/multipage/forms.html#autofill

回答

1

正如您已經注意到的,該規範沒有指定瀏覽器應該如何以及何時自動記住表單值。這意味着瀏覽器可以以任何他們想要的方式進行操作,而且不能依賴於特定的行爲。在這種情況下,Chrome和其他許多瀏覽器都會提交表單作爲保存輸入值的唯一線索。

如果您想確保某種行爲,請查看datalist element。下面是一個例子,從鏈接維基頁面直接複製:

<label>Choose a browser from this list: 
 
<input list="browsers" name="myBrowser" /></label> 
 
<datalist id="browsers"> 
 
    <option value="Chrome"> 
 
    <option value="Firefox"> 
 
    <option value="Internet Explorer"> 
 
    <option value="Opera"> 
 
    <option value="Safari"> 
 
    <option value="Microsoft Edge"> 
 
</datalist>

使用JavaScript,您可以編寫自己的邏輯來以前輸入的值存儲到local storage,然後動態填充那些datalist在稍後的頁面加載時的值。大多數(如果不是全部的話)支持datalist的瀏覽器也會自動完成其元素,如果不是,用戶可以簡單地從下拉列表中選擇一個。

相關問題