在Javascript

时间:2017-10-08 17:29:05

标签: javascript php html forms

我有一个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;
&#13;
&#13;

我得到一个&#34;未解决的变量&#34;此行中的性别错误:

if(!form.gender.value.match(/^[A-Z]/)){

它与firstName和lastName的输入类型相同,我不明白为什么它会给我这个错误。我尝试将性别表单输入移动到表单中的不同位置,尝试将其命名为其他内容,并尝试通过JS中的elementId获取它的值,但没有任何工作。

我在这里缺少什么?

0 个答案:

没有答案