2016-08-12 3 views
0

通常のテキスト入力フィールドでは、クロムでそのフィールドに何を入力したかの履歴をダブルクリックすると表示されます。テキストクロムフィールドの履歴で入力フィールドが機能しない

Angular JSのページにレンダリングされるフィールドがいくつかあります。ただし、履歴アイテムは一切ありません。ダブルクリックすると結果が決して表示されません。

簡単なテストでは、name属性を追加してもこの機能は復元されないようです。

フィールドはフォーム要素から決して正式に送信されないので、これはですか?もしそうなら、どうすればこの問題を回避できますか?

この問題について私がGoogleで見つけたすべての結果は、「オフ」を無視して逆の場合に関連しています。

編集:ここに例があります。私はPOST要求を送信したが、フォームにないフィールドに値を追加して送信することができます:https://jsfiddle.net/gtuzy4p2/2/

ここでは、使用方法の詳細を示す仕様へのリンクもありますその属性は、ブラウザによってどのように値が保存されるべきかを示すものではない。 https://html.spec.whatwg.org/multipage/forms.html#autofill

答えて

1

気づいたとおり、この仕様ではブラウザがフォームの値を自動的に記憶する方法とタイミングを指定していません。これは、ブラウザが望むようにブラウザを実行できることを意味し、特定の動作に依存することはできません。この場合、入力値を保存する唯一の手がかりとして、Chromeや他の多くのブラウザがフォームを送信します。

特定の動作を確保する場合は、datalist elementを参照してください。ここでは一例であり、直接リンクWikiページからコピー:JavaScriptを使用して

<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>

、あなたはlocal storageに、以前に入力した値を保存するために、独自のロジックを記述して、動的にそれらとdatalistを移入することができます後のページ読み込み時の値。データリストをサポートするほとんどのブラウザであれば、その要素の自動補完も行います。そうでなければ、ドロップダウンから簡単に選択できます。

関連する問題