0

JavaScript を使用してフォームにコントロールを追加する HTML フォームがあります。たとえば、フォーム上のボタンをクリックすると、フォームにテキスト ボックスが追加されます。

ユーザーがフォームを送信すると、ユーザーは別のビューに移動します。ただし、ユーザーがブラウザーの [戻る] ボタンをクリックすると、前のフォーム (コントロールを追加するボタンがある) に移動しますが、以前に動的に追加したテキストボックスは表示されません。ただし、他の静的フォーム コントロールは、以前に入力したデータと共に表示されます。

戻るボタンを押すと完全に前の状態に戻るようにするにはどうすればよいですか? または、これをカスタム ボタンに実装する必要がありますか? どうやってやるの?

4

1 に答える 1

1

sessionStorageここで適切なはずです。

  1. ユーザーが入力フィールドを追加したら、追加されたという事実とその値をに保存します。sessionStorage
  2. ユーザーが「戻る」を押したときに、フィールドが保存されているかどうかを確認します。保存されてsessionStorageいる場合は、
  3. ストレージに追加されたフィールドに応じて、フォームを再構築します。
  4. フィールドが削除された場合は、ストレージからエントリを削除することを忘れないでください。

いくつかの擬似コード:

function fieldAdded(name, value){
    sessionStorage[name] = value;
    // You can also use this function to update the saved value, when fields are edited.
}

function pageLoad(name, value){ // load event after pressing "back"
    var optionalFields = ['telephone','fax','name','description'];
    for(var i = 0; i < optionalFields.length; i++){
        if(sessionStorage[optionalFields[i]]){
            // addField(Name, value);
            addField(optionalFields[i], sessionStorage[optionalFields[i]]);
        }
    }
}

function fieldRemoved(name){
    delete sessionStorage[name];
}
于 2012-12-27T14:09:07.227 に答える