4. cookie 的使用

2017-11-25  本文已影响0人  何大炮

血泪提示:innerHTML和value都是用于向html中导入值, 但是
innerHTML 是用于div, p 等纯HTML的标签,value 用于可输入的标签如 input等。

项目过程中用户提到要我们提供一种可以记录用户输入的模板,起初准备用cookie实现,但是模板太过于复杂,所以就放弃了,改用数据库。。。所以的写了一个晚上的cookie就白写了。。。不过为了让以后的工作方便调用,我就把它修改了一下,放了上来。

<!DOCTYPE html>
<html>
<html>
<head>
<meta charset="utf-8">
<title>cookie</title>
</head>
    <link rel="stylesheet" href="http://cdn.static.runoob.com/libs/bootstrap/3.3.7/css/bootstrap.min.css">  
    <script src="http://cdn.static.runoob.com/libs/jquery/2.1.1/jquery.min.js"></script>
    <script src="http://cdn.static.runoob.com/libs/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<head>
<script>
//记录已经输入的数据到cookie
function record(){
    if (document.getElementById("checkbox").checked)
    {
        var first_item = document.getElementById("name").value; 
        document.cookie = "name" +"=" + first_item;
        var second_item = document.getElementById("sex").value;
        document.cookie = first_item + "=" + second_item;
        var third_item = document.getElementById("appearance").value;
        document.cookie = second_item + "=" + third_item;
    }
}

//从cookie中取出对应的数据
function fill_in_auto(first_row_item){
  var cookies = document.cookie.split(';');
  var items_left = first_row_item + "=";
    
  for (var i = 0; i < cookies.length; i++)
  {     
    if (cookies[i].indexOf(items_left) == 1)
    {  
      document.getElementById("sex").value = cookies[i].substring(items_left.length + 1);
      var items_left = cookies[i].substring(items_left.length + 1) + "=";
      break;
    }
  }
  for (var i = 0; i < cookies.length; i++)
  {
    if (cookies[i].indexOf(items_left) == 1)
      {
        document.getElementById("appearance").value = cookies[i].substring(items_left.length + 1);
        break;
      }
      
  }
}
    
// 监听函数
function checkCookie(){
    var input = document.getElementById("name").value;
    // document.getElementById("test").innerHTML = document.cookie;
    fill_in_auto(input);
    
}

</script>
</head>
    
<body>
    <form class="form-horizontal" role="form">
    <div class="form-group">
        <label for="firstname" class="col-sm-2 control-label">名字</label>
        <div class="col-sm-10">
            <input type="text" class="form-control" id="name" 
                   placeholder="请输入名字" onchange = "checkCookie()">
        </div>
    </div>
    <div class="form-group">
        <label for="lastname" class="col-sm-2 control-label">Sex</label>
        <div class="col-sm-10">
            <input type="text" class="form-control" id="sex" 
                   placeholder="男女?">
        </div>
    </div>
    
    <div class="form-group">
        <label for="lastname" class="col-sm-2 control-label">外貌</label>
        <div class="col-sm-10">
            <input type="text" class="form-control" id="appearance" 
                   placeholder="帅否?">
        </div>
    </div>
        
    <div class="form-group">
        <div class="col-sm-offset-2 col-sm-10">
            <div class="checkbox">
                <label>
                    <input type="checkbox" id = "checkbox"> 请记住我
                </label>
            </div>
        </div>
    </div>
    <div class="form-group">
        <div class="col-sm-offset-2 col-sm-10">
            <button type="submit" class="btn btn-default" onclick = "record()">登录</button>
        </div>
    </div>
</form>
</body> 
</html>
效果图

一旦输入过一次,并且选择了记录,那么整个info在登录过程中就会被记录下来。
下一次只要输入名字,就会自动填写剩下的内容。(代码经过了检测,可用)

技术

  1. cookie的调用
  2. 监听: onclick, onchange
  3. 对box的状态检测。
上一篇下一篇

猜你喜欢

热点阅读