JavaScriptを使って簡単なID検証HTMLページを作成しています。私の考えは、ユーザーが有効なID番号を入力するたびに、フォームのテキストフィールドが色を数秒間変えてから元の状態に戻ってしまうことです。短期間色を変えてください。JavaScript&CSS
コード
<script>
var abcArray = ["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"];
var IDweights = [7,3,1,0,7,3,1,7,3];
var valuesMap = new Map();
for(var i=0;i<26;i++){
valuesMap.set(abcArray[i],i+10);
}
validateID();
function validateID(){
var idNumber = document.forms.form.idnum.value.toUpperCase();
var sumOfValues = 0;
for(var x = 0; x < idNumber.length; x++){
if(x < 3){
sumOfValues += (valuesMap.get(idNumber.charAt(x))*IDweights[x]);
}
if(x > 3){
sumOfValues += (parseInt(idNumber.charAt(x))*IDweights[x]);
}
}
if(sumOfValues % 10 == idNumber[3]){
var y = document.getElementById("idnum");
y.style.animation = "anim 5s"; // when true change to green
} else {
var y = document.getElementById("idnum");
y.style.animation = "anim1 5s"; //change to red
}
}
それは一度だけ動作するCSSの一部
@-webkit-keyframes anim {
0% {background:white;}
20% {background:green;}
100% {background:white;}
}
@-moz-keyframes anim {
0% {background:white;}
20% {background:green;}
100% {background:white;}
}
@-webkit-keyframes anim1 {
0% {background:white;}
20% {background:red;}
100% {background:white;}
}
@-moz-keyframes anim1 {
0% {background:white;}
20% {background:red;}
100% {background:white;}
}
。もう一度[確認]ボタンをクリックすると、何も起こりません。私が間違ったもののID番号を変更したときだけ、それは一度だけうまくいってから、もう一度正しいものを入れなければならない...もう一度、私はCSSのプロパティを一度設定しているのでそれが同じであれば、ブラウザはそれらを再び変更しません。しかし、私はJSとCSSには新しいので、適切な解決策は考えられません。私はかなり長い間検索していましたが、私の問題の解決策はまだ見つかりませんでした。部分的には、それを指定する方法がわからないためでした。私はあなたの助けに感謝します。
PS。純粋なjsとcssのみを入力してください - まだjqueryに慣れていません。