1

I'm trying to validate the inputs, so far I've created only two rules. One to test the phone number and another to test if the passwords entered at the same.

My problem is that for some reason my javascript isn't validating input. I have it referenced in <script>, I call it in the form onsubmit="return validate()". For some reason even with using an alert test to check that its run, that fails. So, I'm not really sure what's wrong, I could do with some extra eyes.

function validate() {
  var errMsg = ""; /* stores the error message */
  var result = true; /* assumes no errors */
  var phonetest1 = true;
  var phonetest2 = true;

  /*get values from the form*/
  var FirstName = document.getElementById("FirstName").value;
  var Lastname = document.getElementById("Lastname").value;
  var Email = document.getElementById("Email").value;
  var Password = document.getElementById("Password").value;
  var ConPassword = document.getElementById("ConPassword").value;
  var Phone = document.getElementById("Phone").value;

  var phonepatt1 = (/\(|0|\d|\)|\d|\d|\d|\d|\d|\d|\d|\d/);
  var phonepatt2 = (/0|\d|\s|\d|\d|\d|\d|\d|\d|\d|\d/);

  /* Rule one */
  if (!phonepatt1.test(Phoneno)) {
    phonetest1 = false;
  }
  if (!phonepatt2.test(Phoneno)) {
    phonetest2 = false;
  }

  if (phonetest1 == false && phonetest2 == false) {

    errMsg += "Your Phone number is incorrect .\n";
    result = false;

  }
  alert("I'm running"); /* This isn't working */

  /* Rule two */
  if (ConPassword != Password) {
    errMsg += "Please confirm your password .\n";
    result = false;
  }


  if (errMsg != "") { //only display message box if there is something to show
    alert(errMsg);
  }

  return result;
}
 <H1>store Home Page</H1>
<p>Customer Registration: <a href="register.htm">Register</a> 
  <p>Customer Login: <a href="login.htm">Login</a> 
    <p>Manager Login <a href=" mlogin.htm">Administrators</a> 

      <form id="UserDetails" method="post" onsubmit="return validate()" action="index.htm">
        <fieldset id="Details">
          <legend>Your details:</legend>
          <p>
            <label for="FirstName">First Name</label>
            <input type="text" name="FirstName" id="FirstName" pattern="[a-zA-Z]+" size="20" maxlength="20" required="required" />
          </p>
          <p>
            <label for="Lastname">Last Name</label>
            <input type="text" name="LastName" id="Lastname" pattern="[a-zA-Z]+" size="20" maxlength="20" required="required" />
          </p>
          <p>
            <label for="Email">Email</label>
            <input type="text" name="Email" id="Email" size="20" maxlength="20" required="required" />
          </p>
          <p>
            <label for="Password">Password</label>
            <input type="text" name="Password" id="Password" size="20" maxlength="20" required="required" />
          </p>
          <p>
            <label for="ConPassword">Confirm Password</label>
            <input type="text" name="ConPassword" id="ConPassword" size="20" maxlength="20" required="required" />
          </p>
          <p>
            <label for="Phone">Phone Number</label>
            <input type="text" name="Phone" id="Phone" maxlength="12" size="12" placeholder="(03)92251515" />
          </p>
          <input type="submit" value="Register Now!" />
          <input type="reset" value="Reset" />

        </fieldset>

      </form>

1 Answer 1

1

You have wrog name in your JavaScript (should be Phone instead of Phoneno):

if (!phonepatt1.test(Phone)) {
    phonetest1 = false;
}
if (!phonepatt2.test(Phone)) {
phonetest2 = false;
}
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.