[英]How can I store an input value in web local storege using javascript or jquery?
I have an input like below. 我有一个如下输入。 I want to keep its value after the page is refreshed. 我希望在页面刷新后保持其值。 notice that I have the name attribute, not class or ID. 注意我有name属性,而不是class或ID。
<input type="text" name="name" onkeyup="saveValue(event)"/>
<input type="text" name="age" onkeyup="saveValue(event)"/>
<script type="text/javascript">
var nameArr = ["name"];
nameArr.forEach(function(el){
document.getElementsByName(el)[0].value = getSavedValue(el);
})
function saveValue(e) {
var name = e.target.name;
var val = e.target.value;
localStorage.setItem(name, val);
}
function getSavedValue(v) {
if (!localStorage.getItem(v)) {
return "";
}
return localStorage.getItem(v);
}
</script>
it only works for 1 input.I want something that works on unlimited number of inputs. 它只适用于1输入。我想要的东西适用于无限数量的输入。
document.getElementsByName("name") returns an array. document.getElementsByName(“name”)返回一个数组。 if you are sure that there is only one element with the name 'name' then use 如果您确定只有一个名为'name'的元素,请使用
document.getElementsByName("name")[0].value = getSavedValue("name");
Change parameter of saveValue
to event
: 将saveValue
参数更改为event
:
<input type="text" name="name" onkeyup="saveValue(event)"/>
Since there are many elements with different names, maintain an array: 由于有许多不同名称的元素,因此维护一个数组:
var nameArr = ["name"]; // Add more elements here
nameArr.forEach(function(el){
document.getElementsByName(el)[0].value = getSavedValue(el);
})
Inside saveValue
use e.target
, instead of e
在saveValue
里面使用e.target
而不是e
var name = e.target.name;
var val = e.target.value;
These should get the code working. 这些应该使代码工作。 Here's a working Codepen 这是一个有效的Codepen
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.