この単純な 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>