我正在尝试这个简单的 css 和 js 密码强度检查器。当 css 和 js 包含在如下文件中时,它工作得非常好。但是,如果我将 js 放在一个单独的文件中并将其包含在此文件中,它将无法正常工作。此外,如果我将 css 放在外部 css 文件中,它不会为页面设置样式。
要包括它,我只是简单地说:
<link rel="stylesheet" type="text/css" href="/css/style.css" />
<script type="text/javascript" src="/js/js.js"></script>
我看不出我做错了什么,或者它与代码有关,并且出于某种原因它需要在同一个文件中?
该文件是一个 php 文件,因为我稍后会向其中添加 php,但这并没有改变任何东西吗?
<html>
<head>
<title>strength check</title>
<style type="text/css">
#passwordStrength {
height:10px;
display:block;
float:left;
}
.strength0 {
width:150px;
background:#cccccc;
}
.strength1 {
width:20px;
background:#ff0000;
}
.strength2 {
width:40px;
background:#ff5f5f;
}
.strength3 {
width:60px;
background:#56e500;
}
.strength4 {
background:#4dcd00;
width:80px;
}
.strength5 {
background:#399800;
width:150px;
}
</style>
<script language="javascript" type="text/javascript">
function passwordStrength(password) {
var desc = new Array();
desc[0] = "Very Weak";
desc[1] = "Weak";
desc[2] = "Better";
desc[3] = "Medium";
desc[4] = "Strong";
desc[5] = "Strongest";
var score = 0;
//if password bigger than 6 give 1 point
if (password.length > 6) score++;
//if password has both lower and uppercase characters give 1 point
if ((password.match(/[a-z]/)) && (password.match(/[A-Z]/))) score++;
//if password has at least one number give 1 point
if (password.match(/\d+/)) score++;
//if password has at least one special caracther give 1 point
if (password.match(/.[!,@,#,$,%,^,&,*,?,_,~,-,(,)]/)) score++;
//if password bigger than 12 give another 1 point
if (password.length > 12) score++;
document.getElementById("passwordDescription").innerHTML = desc[score];
document.getElementById("passwordStrength").className = "strength" + score;
}
</script>
</head>
<body>
<input type="password" caption="password" name="password" onkeyup="passwordStrength(this.value);" size="60">
<div style="font-size: 10px"; id="passwordDescription">Password Strength</div>
<div class="strength0" id="passwordStrength"></div>
</body>
</html>