本来的想法是再做一个真正提交的密码框隐藏,获取输入值,显示星号的输入框删除的时候,真正的输入框也跟着删除,当然不再增加输入框最好了
$(function(){ var val = []; $("#password").on('input propertychange',function(){ var val_l = val.length; var l = $(this).val().length; if(val_l < l){ console.log('新输入了一个字符'); console.log($(this).val().charAt(l-1)); val.push($(this).val().charAt(l-1)) }else if(val_l > l){ console.log('删除了一个字符') val.splice(val_l-1, 1); } // 存储的数组 console.log(val); // 最后提交表单时的input框里面的值 console.log(val.join('')) setTimeout(function(){ str = '' for(var i = 0; i < l; i++){ str += '*' } $("#password").val(str) },1000) }); })
type="text" 改成 type="password" 就是可以隐藏密码了, 不用去做这么多的处理, 提交也不会有问题
去看看input的type有哪些,里面有专门输入密码的
<input type = 'password' />
你这个相当于是把input的value都换成了星星 只需要把input的text换成password就可以了 取值也是没有问题的