我有一个HTML表单,我试图用JavaScript中的Regex验证。它目前正在为输入="文本"字段firstName和lastName。但是,它不适用于输入=" text"田野性别。
我一直在看这个一个小时,似乎无法找出原因。
function validate() {
var form = document.forms['formIt'];
var counter = 0;
if (!form.firstName.value.match(/^[A-Z][a-z]*$/)) {
generateMessage("Please capitalize the first letter and assure only letters are entered", "fName", "red");
} else {
counter++;
}
if (!form.lastName.value.match(/^[A-Z][a-z]*$/)) {
generateMessage("Please capitalize the first letter and assure only letters are entered", "lName", "red");
} else {
counter++;
}
if (!form.gender.value.match(/^[A-Z]/)) {
generateMessage("Gender", "gen", "red");
}
if (counter === 3) {
return true;
} else {
return false;
}
}

<!-- Form for Updating -->
<form id="formIt" name="formIt" method="post" action="updatedIt.php">
<p>
<label>Employee No.: <input type="text" name="empNum" id="empNum"
value="<?php echo $iD ?>" readonly/> </label>
</p>
<p>
<label>Birth Date: <input type="date" name="birthday" id="birthday"
value="<?php echo $birthday ?>" /></label> <br />
</p>
<p>
<input type="hidden" name="target" value="">
</p>
<p>
<label>First Name: <input type="text" onkeyup="validateName()"
name="firstName" id="firstName" value="<?php echo $firstName ?>" />
<span id="fName"></span></label> <br />
</p>
<p>
<input type="hidden" name="target2" value="">
</p>
<p>
<label>Last Name: <input type="text" onkeyup="validateName()"
name="lastName" id="lastName" value="<?php echo $lastName ?>" />
<span id="lName"></span></label>
</p>
<p>
<input type="hidden" name="target3" value="">
</p>
<p>
<label>Gender: <input type="text" onkeyup="validateName()"
name="gender" id="gender" value="<?php echo $gender ?>" />
<span id="gen"></span></label>
</p>
<p>
<input type="hidden" name="target4" value="">
</p>
<p>
<label>Hire Date: <input type="date" name="hiredate" id="hiredate"
value="<?php echo $hired ?>" /></label> <br />
</p>
<p>
<input type="hidden" name="target5" value="">
</p>
<p>
<label><input type="submit" name="submitButton" id="submitButton"
value="Submit" onclick="return validate()"/> </label> <br />
</p>
</form>
&#13;
我得到一个&#34;未解决的变量&#34;此行中的性别错误:
if(!form.gender.value.match(/^[A-Z]/)){
它与firstName和lastName的输入类型相同,我不明白为什么它会给我这个错误。我尝试将性别表单输入移动到表单中的不同位置,尝试将其命名为其他内容,并尝试通过JS中的elementId获取它的值,但没有任何工作。
我在这里缺少什么?