浏览器刷新后input输入框依旧保留原值不被清空
  热度 °
html页面中的input框如果在浏览器刷新前有值,怎么在刷新后依然保留这个值不被清空呢?下面用setCookie
的方案来解决这个问题.
首选判断input框中有值时,setcookie
, 每次刷新浏览器时,读取Cookie
值,如果存在Cookie
值,则用此值初始化input值。
纯js实现
设置Cookie
1 | /* |
获取Cookie
1 | function getCookie(cname) |
根据cname
获取相应的cookie值, cookie不存在就返回空字符串.
checkCookie
可以将判断Cookie是否存在的下一步处理逻辑封装到checkCookie
方法中
1 | function checkCookie() |
另一种方式是借助jQuery实现
首选引入jquery相应的库
1 | <script src="http://apps.bdimg.com/libs/jquery.cookie/1.4.1/jquery.cookie.js"></script> |
创建Cookie
如创建一个名为“example”,值为“foo”的cookie:1
$.cookie("example", "foo");
要设置cookie的有效期,可以设置expires值,如设置cookie的过期时间为10天:
1 | $.cookie("example", "foo",{expires:10}); |
设置cookie一小时后过期:
1 | var cookietime = new Date(); |
要设置cookie的保存路径,可以设置path值,如设置路径为根目录:
1 | $.cookie("example", "foo",{path:"/"}); |
如果要设置路径为/admin,则:
1 | $.cookie("example", "foo",{path:"/admin"}); |
获取cookie值
1 | $.cookie("example"); |
删除Cookie
使用jQuery删除cookie,只需要将cookie的值为null,注意如果设置值为空的字符串时,并不能删除cookie,只是将cookie值清空而已。1
$.cookie("example",null);
或者1
$.cookie('the_cookie', '', { expires: -1 }); // 删除 cookie
- js-setcookie.html
- jquery-setcookie.html
总结
cookie是基于域名来储存的, cookie具有不同域名下储存不可共享的特性。 这也是cookie支持设置path
和domain
的作用之一。
所以要测试cookie是否生效,需要放到测试服务器上或者本地localhost服务器上才会生效。单纯的本地一个html页面打开是无效的。
作者署名:朴实的一线攻城狮
本文标题:浏览器刷新后input输入框依旧保留原值不被清空
本文出处:http://researchlab.github.io/2016/07/10/browse-refresh-saveinputolderval/
版权声明:本文由Lee Hong创作和发表,采用署名(BY)-非商业性使用(NC)-相同方式共享(SA)国际许可协议进行许可,转载请注明作者及出处, 否则保留追究法律责任的权利。