解决cookie值被搜狗浏览器填写进非登录表单的问题

  1. 一个新的系统,系统登录时,我们选择记住账号密码,  
  2. 可是进入到系统里面的一个表单,有多个输入框,其中有一个密码输入框,  
  3. 那么这时候,  
  4. 对搜狗浏览器,会把第一个输入框里面填充最近登录的账号,密码输入框填充该账号对应的密码  
  5. 对chrome浏览器,双击输入框,会把历史输入记录下拉列表弹出来,列表里面包括曾经登录的账号,密码输入框则会对应填充  
  6.   
  7. 如何解决这个问题  
  8.   
  9. 有两种方式:  
  10. 1、搜狗浏览器对表单里面的密码输入框敏感识别,我又添加了一个密码输入框,作visibility:hidden处理【不可用display:none】;此时就有两个密码输入框了,让浏览器无法选中填充对象,从而达到不会自动填充的目的  
  11.    <input autocomplete="off" type="password" maxlength="6" name="pwd" >
  12.               <input type="password" style="visibility: hidden;width:0;margin:0;">
  13. 2、采用障眼法,模拟出密码输入框,  
  14.      <input autocomplete="off" type="text" id="nPassword" maxlength="6"  >  
  15.      <input type="hidden" id="rPassword" name="pwd">  
  16.   
  17.   // 数组存储输入的字符  
  18.             var passArr=[];  
  19.   
  20.             $("#nPassword").keyup(function(){  
  21.                 debugger;  
  22.                 var noPass=$(this).val();  
  23.                 var len = $(this).val().length;  
  24.                 // 输入  
  25.                 if(len>passArr.length){  
  26.                     var newLen = len-passArr.length;  
  27.                     for(var i=0; i<newLen; i++) {  
  28.                     debugger;  
  29.                         passArr.push(noPass.substring(passArr.length, passArr.length + 1));  
  30.                     }  
  31.   
  32.                 }  
  33.                 // 删除  
  34.                 if(len<passArr.length){  
  35.                     var _newLen=passArr.length-len;  
  36.                     for(var i=0;i<_newLen;i++){  
  37.                         passArr.pop();  
  38.                     }  
  39.                 }  
  40.   
  41.                 //将数组赋值给真实密码隐藏字段  
  42.                 var realPwd = passArr.join("");  
  43.                 $("#rPassword").val(passArr.join(""));  
  44.                 var _star=""  
  45.                 for(var a=0; a<passArr.length;a++){  
  46.                     _star+="*";  
  47.                 }  
  48.                 $("#nPassword").val(_star);  
  49.                 console.log("密码"+$("#rPassword").val());  
  50.             });  
  51.   
  52. 将输入的字符逐个存储在数组里,将数组的值作为最后输入的密码值,而输入框里面则显示的“*”,  

猜你喜欢

转载自kuxingyisheng.iteye.com/blog/2261608