0

我有一个 HTML 表单,它使用 JavaScript 向表单添加控件。例如,当单击表单上的按钮时,会在表单中添加一个文本框。

当用户提交表单时,用户将被带到另一个视图。但是,如果用户单击浏览器上的后退按钮,她/他将被带到前一个表单(具有添加控件的按钮),但他/她之前动态添加的文本框都不会显示。但是,其他静态表单控件显示之前输入的数据。

我怎样才能让它按下后退按钮返回到完整的先前状态?还是我需要在自定义按钮中实现它?我怎样才能做到这一点?

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