返回按钮返回动态添加控件的状态

时间:2012-12-27 13:54:53

标签: javascript html forms

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

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

我怎样才能按下后退按钮返回完整的先前状态? 或者我是否需要在自定义按钮中实现此功能?我怎么能这样做?

1 个答案:

答案 0 :(得分:1)

sessionStorage应该适合,在这里。

  1. 当用户添加输入字段时,将其添加的事实及其值保存到sessionStorage
  2. 当用户按下“返回”时,检查sessionStorage中是否保存了任何字段,如果是这样的话,
  3. 根据存储中添加的字段重新构建表单
  4. 如果删除字段,请不要忘记从存储中删除条目。
  5. 一些伪代码:

    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];
    }