问题描述
在改一个登录页面,要根据账号和密码框里有没有内容来设置登录按钮的状态。使用chrome登录并记住密码后,再次进入登录页面,表单会自动填充账号和密码,但是onload
里取到的对应值是空的。需要手动点一下页面后才能获取。
有没有办法不需要用户操作即可获取表单自动填充的值?
尝试过的方法
试过setTimeout延迟执行、autofocus、用js触发input事件均不能解决问题
firefox上是可以获取到的
相关代码
<body>
<form name="loginForm" action="test.html" method="GET">
<div class="login-panel">
<label>登录</label>
<input id="username" placeholder="请输入用户名" maxlength="80"/>
<input class="error" id="password" placeholder="请输入密码" type="password" maxlength="80"/>
<small id="msg">密码错误</small>
<button id="submit" disabled>登录</button>
</div>
</form>
</body>
<script type="text/javascript">
window.onload = function () {
var $u = document.getElementById('username');
console.log($u.value)//空的
setInterval(function () {
console.log($u.value)//点击页面前一直是空的
}, 2000)
}
</script>
chrome版本 75.0.3770.142(正式版本) (32 位)
大概是由于安全方面原因,chrome上无法获取到值,可以通过检查伪类
:-webkit-autofill
判断是否自动填充https://stackoverflow.com/que...