0

フォームを投稿する前に 2 つのチェック ボックスを必要とするフォームがあります。いずれかがチェックされていない場合は、警告を表示してユーザーにチェックを求めるように設定しています。現在、両方がチェックされていない場合に機能します。最初のチェック ボックスのみがオフの場合も、正しく機能します。ただし、2 番目のチェック ボックスであるルール チェック ボックスだけがチェックされていない場合、フォームは引き続き投稿されます。

???? 前もって感謝します。

<head>
<title>Untitled Document</title>
<script language="JavaScript" type="text/JavaScript">
function checkme() {
missinginfo = "";
if (!document.team.agree.checked) {
missinginfo += "\n - The entire team must read and agree to the rules";
}
if (missinginfo != "") {
missinginfo ="__________________________________\n" +
"Required information is missing: \n" +
missinginfo + "\n__________________________________" +
"\nEnsure everyone has read the rules and resubmit.";
alert(missinginfo);
return false;
}
else {
return true;
}
}

function checkme2() {
missinginfo2 = "";
if (!document.team.registered.checked) {
missinginfo2 += "\n - Each driver must register individually";
}
if (missinginfo2 != "") {
missinginfo2 ="__________________________________\n" +
"Required information is missing: \n" +
missinginfo2 + "\n__________________________________" +
"\nEnsure everyone has registered individually and resubmit.";
alert(missinginfo2);
return false;
}
else {
return true;
}
}
</script>
</head>

<body>
<form name="team" method="post" action="#" onSubmit="return checkme(), checkme2();">
<table cellpadding="0" cellspacing="0" border="0">
<td colspan="2" align="center"><input type="checkbox" name="registered" value="each_registered"> Each driver is already registered individually.
</td>
</tr>  
<td colspan="2" align="center"><input type="checkbox" name="agree" value="agree_terms"> The team agrees to the rules.</td>
</tr>  
<tr>
<td colspan="2" align="center"><input type="submit" name="submit" value="Submit"></td>
</tr>
</table>
</form>
</body>
</html>
4

2 に答える 2

0

あなたは実際には非常に近いですが、検証には単一の関数のみを使用し、JavaScript フレームワークの使用を検討する必要があると思います。これにより、JavaScript が非常に使いやすくなります。

これ:

<form name="team" method="post" action="#" onSubmit="return checkme(), checkme2();">

これでなければなりません:

<form name="team" method="post" action="#" onSubmit="return checkme() && checkme2();">

ここでjsfiddleで動作しています

于 2011-06-22T21:55:44.637 に答える
0

各要素に対して検証関数、つまり checkme と checkme2 を実行する validateForm という関数が 1 つ必要な場合があります。

そうは言っても、JavaScript が無効になっているブラウザーでフォームを動作させたい場合は、サーバー側の検証も検討する必要があります。

于 2011-06-22T21:55:59.097 に答える