ここのオプション(オートコンプリート、data-lpignoreなど)のいずれも、残念ながらLastPassがフォームフィールドを自動入力できないようにしていません。私は問題に対してよりスレッジハンマーのアプローチをとり、name
代わりにJavaScriptを介して入力属性を非同期に設定しました。次のjQuery依存関数(フォームのonsubmitイベントハンドラーから呼び出される)がトリックを実行しました。
function setInputNames() {
$('#myForm input').each(function(idx, el) {
el = $(el);
if (el.attr('tmp-name')) {
el.attr('name', el.attr('tmp-name'));
}
});
}
$('#myForm').submit(setInputNames);
フォームでtmp-name
は、同等のname
属性の代わりに属性を使用しました。例:
<form id="myForm" method="post" action="/someUrl">
<input name="username" type="text">
<input tmp-name="password" type="password">
</form>
アップデート2019-03-20
name
ngMessagesがフィールド検証エラーメッセージを正しく表示するために、属性を持つフォームフィールドに依存しているAngularJSのため、上記の問題に依然として遭遇しました。
最終的に、LastPassがパスワード変更フォームのパスワードフィールドに入力するのを防ぐために私が見つけた唯一の解決策は、次のとおりでした。
input[type=password]
完全に使用しないでください
- フィールド名に「パスワード」を含めない
私の場合、フォームを通常どおり送信できるようにする必要があるため、元のソリューションを使用して、フィールド名を「ジャストインタイム」で更新しました。パスワード入力フィールドの使用を回避するために、この解決策は非常にうまく機能していることがわかりました。
type="hidden"
、CSSで非表示にするのではなく設定することをお