当我们在页面中填写表单时,常常希望在页面发生跳转或刷新时能够保留之前填写的数据。H5中的Web Storage API可以帮助我们在客户端上存储填写的表单数据。
下面通过一个例子来说明用法。
HTML代码
<form>
<p>
<label for="name">姓名</label>
<input type="text" id="name">
</p>
<p>
<input type="radio" name="sex" id="male" value="先生">先生
<input type="radio" name="sex" id="female" value="女士">女士
</p>
<p>
<label for="phone">联系电话</label>
<input type="number" id="phone">
</p>
<select name="province" id="province">
<option value="jiangsu">江苏</option>
<option value="anhui">安徽</option>
<option value="hunan">湖南</option>
<option value="fujian">福建</option>
</select>
<p>
<input type="submit" id="formSave">
</p>
</form>
javascript代码
//别忘了先引入jquery
<script src="jquery-3.2.1.js"></script>
<script>
//在存储中设置值
$("#formSave").click(function () {
//存储输入框中填入的值
localStorage.setItem("name", $("#name").val());
localStorage.setItem("phone", $("#phone").val());
localStorage.setItem("province", $("#province").val());
//存储选中的radio
var k_val = $(":radio[name=sex]:checked").val();
localStorage.setItem("k_val", k_val);
})
//从存储中获取值
$(
function myStorage() {
//刷新后重新获取输入框中填入的值
var name = localStorage.getItem("name");
var phone = localStorage.getItem("phone");
var province = localStorage.getItem("province");
//将重新获取的值显示到表单元素中
$("#name").val(name);
$("#phone").val(phone);
$("#province").val(province);
//重新读取选中的radio
$(":radio").removeAttr("checked");//这里很重要
var kk_val = localStorage.getItem("k_val");;
$(':radio').each(function () {
if ($(this).val() == kk_val) {
$(this).prop("checked", true);
}
})
}
)
myStorage();
</script>
这里主要用到了localStorage.setItem()和localStorage.getItem(),分别用来设置需要存储的值和获取已存储的值。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。