在浏览器上按回后,如何使用pushstate / reloadstate保留/填充表单值?

问题描述

我有一个验证机制((冗余)验证表单输入):

if (valid) {
                form.attr("data-valid","true");
                form.find("input[type='submit']").attr("disabled","disabled");
                
                
                var form = $(this);
                console.log(form[0]);
                /// store data here since it would be valid 
                
                // for (var i = 0; i<this.length; i++ ) {
                 
                //     localStorage.setItem(this[i].name,this[i].value);
                //     console.log(localStorage);
                //   // localStorage.clear();
                //   }
                  
                //   history.pushState(data,event.target.textContent,event.target.href);
                //   return event.preventDefault();
                  console.log(this)
                  
                let serializedForm = $(this).serializeArray();
                let href = window.location.href;
                //window.location.hash = 'coming';
                window.history.pushState(serializedForm,"",href);
                
            } else {
                event.preventDefault();
                event.stopPropagation();
                
            }
            return valid;

如果表单有效,我想保存表单状态(表单的值保持不变)。

这是我要介绍的情况:用户具有“有效”表单输入,保存表单状态,并且由于表单有效,因此提交按钮会将他带到下一页,这是错误的,因为用户已经存在。用户按下浏览器上的“后退”按钮,就可以看到他刚提交的表单值(尽管有效)。

我当时正在考虑使用cookie或localStorage,但这似乎是一种“更简单,更有效的方法

请紧记,因为输入在“ if”块中的最后一段代码之后“有效”,他被重定向下一页(这将提示显示用户已经存在的错误消息)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...