だから私はフォーム検証プロジェクトに取り組んでいます。入力が満たさなければならない一連の基準が与えられ、正規表現を使用してすべてをチェックする必要があります。私はすべてをコード化しており、最初の入力を除いてすべてが完全に機能しています。正規表現に対してチェックしますが、一致に問題がある場合は、false ではなく true を返し、ウィンドウを「フォームが受け入れられました」ページに移動します。
function validate_registration(){
var RegExpName = /^[A-Z a-z]+$/;
var RegExpCourseId = /^WEB*([1-9]{1})*[0-9]{2}$/;
var studentName = document.reg_page.student_name.value;
var courseID = document.reg_page.course_id.value;
if (!RegExpName.test(studentName))
{
alert("Please enter the name on your Student ID");
document.reg_page.s.focus();
document.reg_page.s.select();
return false;
}
else if (!RegExpCourseId.test(courseID))
{
alert("Please enter a valid Course ID");
document.reg_page.c.focus();
document.reg_page.c.select();
return false;
}
}
<div id="container">
<div id="page">
<form name="reg_page" method="post" onSubmit="return validate_registration();" action="thanks.htm" >
<table id="form">
<tr>
<td colspan="2"><div id="table_title">Web Registration Form</div></td>
</tr>
<tr>
<td class="label">Student Name:</td><td><input name="student_name" id="s" size="15" /></td>
</tr>
<tr>
<td class="label">Course ID:</td><td><input name="course_id" id="c" size="10" /></td>
</tr>
これは、javascript とフォームの関連部分です。コース ID エリアは完全に機能します。空白の場合は false を返し、テキスト入力フィールドを強調表示します。生徒名と同じようにしないのはなぜですか?