Javascript Form How to - Form validation








Question

We would like to know how to form validation.

Answer


    <HTML>
    <HEAD>
    <SCRIPT LANGUAGE="JavaScript">
    function validatePersonalInfo(){<!-- w ww .  j  a va2 s  . c  om-->
      var _first = document.info.fname.value;
      var _last = document.info.lname.value;
      var _street = document.info.street.value;
      var _city = document.info.city.value;
      var _zip = document.info.zip.value;
      var _phone = document.info.phone.value;
      var _email = document.info.email.value;

      if(_first.toString() == ""){console.log("Please enter a first name.");}
      if(_last.toString() == ""){console.log("Please enter a last name.");}
      if(_street.toString() == ""){console.log("Please enter your street name.");}
      if(_city.toString() == ""){console.log("Please enter your city.");}
      if(_zip.toString() == ""){console.log("Please enter your zip.");}
      if(_phone.toString() == ""){console.log("Please enter your phone number.");}
      if(_email.toString() == ""){console.log("Please enter your email.");}
      

        var checkZip = checkNum(5);
        var phoneInput = document.info.phone.value;
        var validPhone = false;
        var validZip = false;
         if(checkZip == true){
            validZip = true;
         }
         else{
           console.log("Invalid Zip Code" + validZip);
         }
         if(!checkPhone(phoneInput)){
               console.log("Phone number is invalid." + validPhone);
            }
         else{
             validPhone = true;
         }
         if(validZip && validPhone){
            console.log("Your form has been verified");
         }
    }
    
    // Strips hyphens out of phone number and verifies that
    // phone number is valid. Any phone number in the format
    // xxxxxxxxxx, xxx-xxx-xxxx, or (xxx)xxx-xxxx will be valid

    function checkPhone(str){
      var regexp = /^(\d{10}|\d{3}-\d{3}-\d{4}|\(\d{3}\)\d{3}-\d{4})$/;
       return regexp.test(str);
    }
    function checkNum(length){
      var zipEntry = document.info.zip.value;
      var zipNum = parseInt(zipEntry, 10);
      if (document.info.zip.value.length == length){
        if(zipNum != 0 && isNaN(zipNum) == false){
          return true;
        }
        else {
          return false;
        }
      }
      else {
        return false;
      }
    }
    </SCRIPT>
    </HEAD>
    <BODY>
    <FORM NAME="info"  ACTION="" METHOD="post">
    <TABLE>
    <TR><TD ALIGN="left">First Name:</TD>
    <TD ALIGN="left">
    <INPUT TYPE="text" NAME="fname" SIZE=15>
    Last Name:
    <INPUT TYPE="text" NAME="lname" SIZE=20>
    </TD>
    </TR>
    <BR>
    <TR><TD ALIGN="left">Street:</TD>
    <TD ALIGN="left">
    <INPUT TYPE="text" NAME="street" SIZE=30></TD>
    </TR>
    <BR>
    <TR>
    <TD ALIGN="left">City:</TD>
    <TD ALIGN="left">
    <INPUT TYPE="text" NAME="city" SIZE=15>
    State:
    <SELECT NAME="state">
    <OPTION value=AL>AL
    <OPTION value=AK>AK
    <OPTION value=AZ>AZ
    </SELECT>
    Zip:
    <INPUT TYPE="text" NAME="zip" SIZE=7>
    </TD>
    </TR>
    <BR>
    <TR><TD ALIGN="left">Phone (w/area code):</TD>
    <TD ALIGN="left">
    <INPUT TYPE="text" NAME="phone" SIZE=20></TD>
    </TR>
    <BR>
    <TR><TD ALIGN="left">Email:</TD>
    <TD ALIGN="left">
    <INPUT TYPE="text" NAME="email" SIZE=20></TD>
    </TR>
    <BR>
    </TABLE>
    <INPUT TYPE="button" VALUE="Submit" onclick="validatePersonalInfo()">
    </FORM>
</BODY>
</HTML>

The code above is rendered as follows: