22

私のテキスト入力は、以前に入力された値を記憶していないようです。たとえば、アカウントを持っていなくても、たとえば以前にメール アドレスを入力したことがある (「ゲスト」として電車のチケットを購入した) 多くの Web サイトでは、使用したメール アドレスの一種のドロップダウンが表示されます。過去に。しかし、私のフォームはこれを行いません。毎回完全に入力する必要があります。この質問の反対のようです...

次のような簡単な入力があります<input type="text" id="firstName" placeholder="First name" />

そして、それらは単純な jQuery Ajax 投稿で送信されます。このようなもの。ただし、その例では Ajax は jsbin で機能していません。基本的な構造を示すために示しただけです。このためのjQueryプラグインはありますか? この一見ブラウザ主導の動作を制御する方法はありますか?

4

8 に答える 8

1

一部のブラウザーは、(ab)using localStorage を介して「手動で記憶する」まで、入力を記憶することを断固として拒否しました...これは私にとってはうまくいきました:

    {
        // hack to remember last error id on page refresh
        // can't believe i have to do this, but my browser don't want to remember it itself, 
        // ... not sure why
        let errorid_element=document.querySelector("#errorlog_id");
        let rememberHack=function(){
            localStorage.setItem("last_id_remember_hack",errorid_element.value);
        };
        errorid_element.addEventListener("input",rememberHack);
        errorid_element.addEventListener("change",rememberHack);
        errorid_element.value = localStorage.getItem("last_id_remember_hack");
    }
于 2020-09-22T17:32:07.553 に答える
0

Reactを使用している場合

  • 各入力に名前を付ける
  • 包み込む<form>
  • デフォルトのフォーム アクションを防止する
  • 送信ボタンを追加type="submit"し、 を含めないでくださいonClickonSubmitコールバックにそれを処理させます。

Enter キーを押すか、ボタンをクリックすると、入力した値が記憶されます。

<form onSubmit={(e) => {
        e.preventDefault(); // prevent new page from being opened
        // do something with input data
     }
}>
    <input name="myInput" ... />
    <button type="submit" ... />
</form>

https://reactjs.org/docs/forms.html

于 2021-08-05T05:30:16.640 に答える