2011-06-22 13 views
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> 

答えて

0

私はあなただけの検証のために、単一の機能を使用すると、おそらくJavaScriptのフレームワークを使用してになるはずだと思いますが、あなたは実際には非常に接近しています。それはjavascriptをはるかに使いやすくします。

この:

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

はこのことする必要があります

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

それはあなたがすなわちcheckme検証機能を実行しますvalidateFormと呼ばれる一つの機能を持っている場合がありますhere on jsfiddle

+0

素晴らしい。私はそれを逃したことを恥ずかしいが、それでも私は非常に助けに感謝しています。 – Sethsual

0

を働いていると、各要素のcheckme2。

JavaScriptが無効なブラウザーでフォームを使用する場合は、サーバー側の検証も考慮する必要があります。