初めての Web サイトを開発していますが、javascript 検証スクリプトに問題があります。私のコード:
<html>
<head>
<title>Territory</title>
</head>
<body>
<script type="text/javascript"> //Main Javascript function giving me issues
function validate(form)
{
fail = validateTerrNum(document.checkOut.numberOut.value);
fail += validateFirstName(document.checkOut.fName.value);
fail += validateLastName(document.checkOut.lName.value);
if (fail == "")
return true;
else
{
alert(fail);
return false;
}
}
</script>
<script type="text/javascript>
function validateTerrNumber(field)
{
if (field == "") return "No territory number was entered. \n";
else if (field.length > 3)
return "Territory numbers must be less than four characters. \n";
else if (/[^0-9]/.test(field))
return "Only 0-9 allowed in territory number. \n";
return "";
}
//Note: Does not sanitize string
function validateFirstName(field)
{
if (field == "") return "No first name was entered. \n";
return "";
}
//Again, note that this function does not sanitize string
function validateLastName(field)
{
if (field == "") return "Not last name was entered. \n";
return "";
}
</script>
<table border="0" cellpadding="2" cellspacing="5">
<th colspan="2" align="center">Check Out</th>
<form name="checkOut" method="post" onSubmit="validate(this)">
<tr><td>Territory Number</td><td><input type="text" name="numberOut" tabindex="1" maxlength="3" size="3" /></td>
</tr><tr><td>First Name of Holder</td><td><input type="text" name="fName" tabindex="2" maxlength="15"/></td>
</tr><tr><td>Last Name of Holder</td><td><input type="text" name="lName" tabindex="3" maxlength="15" /></td>
</tr><tr><td><input type ="checkbox" name="specialC" tabindex="4" value="Yes"/> Special Campaign</td>
</tr><tr><td></td><td><input type="submit" value="Check Out" /></td>
</form>
</table>
</body>
</html>
明らかにフォーマットが不十分です - コピーと貼り付けの結果です。より具体的には、この問題は JavaScript の検証に関するものです。「チェックアウト」を押すと、間違った値を入力しても検証が妨げられません。スクリプトは非常に単純ですが、何らかの理由で何が起こっているのかわかりません (私は JavaScript にかなり慣れていません)。
ブラウザー全体で多くの JavaScript が実行されているため、問題はブラウザーではないことはわかっています。私が考えることができる唯一のことは、フォームにメソッドがないことです。これは別の検証になりますが、php で記述されています。JavaScript は実際には、クライアントの事前検証にすぎません。
どんな助けでも大歓迎です。
-マグマ