2016-11-11 49 views
0

所以我试图做一个米,如果用户输入的密码是强大的使用zxcvbn,但虽然代码在codepen上工作,它会抛出一个TypeError: password is null在我的浏览器,并没有更新仪表为我在密码输入上键入字母。Javascript价值变化TypeError zxcvbn

代码:

HTML:

<script src="https://cdnjs.cloudflare.com/ajax/libs/zxcvbn/4.2.0/zxcvbn.js"></script> 

<input class="form-control" type="password" id="password" /> 
<div id="pwd-container"> 
    <meter max="4" id="password-meter"></meter> 
</div> 

的Javascript:

var password = document.getElementById('password'); 
var meter = document.getElementById('password-meter'); 

password.addEventListener('input', function() { 
    var val = password.value; 
    var result = zxcvbn(val); 

    meter.value = result.score; 
}); 

回答

0

你可能把你的JS代码上面HTML。试试这个:

<!DOCTYPE html> 
<html> 
<head> 
    <meta charset="utf-8"> 
    <title></title> 
</head> 
<body> 

    <script src="https://cdnjs.cloudflare.com/ajax/libs/zxcvbn/4.2.0/zxcvbn.js"></script> 

    <input class="form-control" type="password" id="password" /> 
    <div id="pwd-container"> 
     <meter max="4" id="password-meter"></meter> 
    </div> 

    <script type="text/javascript"> 

    var password = document.getElementById('password'); 
    var meter = document.getElementById('password-meter'); 

    password.addEventListener('input', function() { 
     var val = password.value; 
     var result = zxcvbn(val); 

     meter.value = result.score; 
    }); 

    </script> 

</body> 
</html>