トピックラインに似たスレッドがたくさんあることを知っています。空のフィールドのテストが完璧に実行され、さまざまなフォーラムの投稿をフォローした後、数値入力またはアルファベット入力のテストを実装しようとしましたが、関数は単に機能しません。ここでJavaScript - 数値/アルファベットだけの妥当性確認
は私の作業NotEmpty機能の抜粋です:
function validateNotEmpty(input, id)
{
var errorDisplay = document.getElementById(id);
var notEmpty;
if (input == "") // check if input is empty
{
errorDisplay.innerHTML = "This is a requiered field";
notEmpty = false; // update return value
} // end if
else
{
errorDisplay.innerHTML = ""; // clear the error area
notEmpty = true; // update return value
} // end else
return notEmpty; // return whether the input is empty
}// end function validateNotEmpty
そして、次は私の2(数値/アルファベットテスターを動作していない)されています。このの上に
function validateNotNumber(input, id)
{
var errorDisplay = document.getElementById(id);
var notNumber;
for (var i=0;i<input.value.length;i++){
temp=input.value.substring(i,i+1);
console.log(temp);
if (digits.indexOf(temp)==-1){
errorDisplay.innerHTML = "Sorry, this section can not have numbers";
notNumber = false;
}
else
{
errorDisplay.innerHTML = ""; // clear the error area
notEmpty = true; // update return value
} // end else
}
return notNumber;
}
function validateNotLetter(input, id)
{
var errorDisplay = document.getElementById(id);
var notLetter;
for (var i=0;i<input.value.length;i++){
temp=input.value.substring(i,i+1);
console.log(temp);
if (alphabets.indexOf(temp)==-1){
errorDisplay.innerHTML = "Sorry, this section can not have letter";
notLetter = false;
}
else
{
errorDisplay.innerHTML = ""; // clear the error area
notLetter = true; // update return value
} // end else
}
return notLetter;
}
、これはさどのように私のフォームからjavascript関数を呼び出す:
<td width="135" valign="top">
<input size="15" type="text" name="Full_Name" value="" onblur = "validateNotNumber(this.value, 'nameError')"/>
<p> <span id = "nameError" class = "errorMessage"></span> </p>
</td>
助けを借りて/ポインタ、ありがとう私はJavaScriptのことがかなり新しいので、検証の周りに頭を入れておくのはかなり複雑です。
学ぶための場所。しばらく時間を取って記事を整理し、簡単なコード例を作成すると助けになります。 – Nix
あなたのvalidateNotNumber関数で問題が発生しましたが、あなたはinput.value.lengthを使用してループしています。代わりにinput.lengthだけを使用してください。この行にも同じことがあります。temp = input.value.substring(i、i + 1);あなたは未定義の数字を使用しています。 –