javascript - 无 Action 的工作形式

标签 javascript jquery html forms

我正在尝试不执行任何操作即可执行 html 表单。它必须:

1)像正常形式一样记住输入数据。

2) 不重新加载页面

我尝试过:

<form action="javascript:void(0);" id="simple-form">

但是

$('#simple-form').submit();

表单不记得输入数据。 范式

<form action="#" id="simple-form">

重新加载页面,但也会记住输入数据。

是否存在另一种无需 JavaScript 表单即可记住数据的方法?


更新#1:

event.preventDefault(); // onsubmit event prevert

工作原理不同,因为它不仅阻止页面重新加载,而且阻止数据保存(自动完成)。

最佳答案

使用 JavaScript

var form = document.getElementById("simple-form")
form.onsubmit = function (event) { event.preventDefault() }

if(localStorage){
    var textfield = document.getElementById("yourTextfield");
    var data = localStorage.getItem("yourTextfield");
    if(data){
       textfield.value = JSON.parse(data);
    }
    textfield.onkeydown = function(){
         localStorage.setItem("yourTextfield",JSON.stringify(textfield.value));
   }
}

使用历史对象的替代解决方案

var data = history.state.textfieldName;
if(data){
    textfield.value = data;
}
textfield.onkeydown = function(){
    history.state.textfieldName = textfield.value;
}

关于javascript - 无 Action 的工作形式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23885100/

相关文章:

javascript - jquery 下拉列表中的自动完成

javascript - jquery 自动点击底层元素

javascript - 当您在没有数据库的情况下运行railsgeneratescaffold时,RoR在哪里定义它创建的对象?

html - `flex` 在移动设备上的显示与桌面不同

javascript - div 在点击时显示两次

javascript - 使用 SpriteStage (WebGL) 创建 EaselJS Sprite 动画

javascript - Javascript函数声明之间的区别

javascript - Hook useState 在不应该记录状态时记录状态。包含示例代码盒

jQuery计数显示:block的div

html - 如何让事件路线在我的导航栏上突出显示?