Bhairav
Bhairav

Reputation: 97

How to add form validation in HTML?

I have a form:

<form method="post">                    
     <input type="text" name="name" placeholder="Name :" data-required="true" data-type="Name">
     <input type="text" name="email" placeholder="Email:" data-required="true" data-type="Email">
     <input type="text" name="phone" placeholder="Phone Number:" data-required="true" data-type="Phone">
     <select>
            <option value="" disabled selected>College Name:</option>
            <option>College 1</option>
            <option>College 2</option>
            <option>College 3</option>
            <option>College 4</option>
            <option>College 5</option>
            <option>College 6</option>
     </select>  
     <select>
            <option value="" disabled selected>Enquiry Type:</option>
            <option>MD/MS Coaching</option>
            <option>MDS Coaching</option>
            <option>DNB Coaching</option> 
     </select>
     <textarea>Message</textarea>                    
     <button class="btn btn-info" type="submit">Submit</button>
 </form>

Now, I need to add the validation message to each field like displaying the text in red color below the field.

I don't know much about Javascript or JQuery.

Please help me in adding the validation to fields.

Upvotes: 0

Views: 374

Answers (4)

Sandeep Nayak
Sandeep Nayak

Reputation: 4757

Although you can do the validations with HTML5 itself, I generally use jQuery Validate Plugin.

You need jQuery and then include the jQuery Validate Plugin libraries.

Your validate like this. I have validated only for name field. You can take it forward for other fields.

var self = this;
$(document).ready(function() {
  
  
  // Right way, as suggested by @Sparky in the comments below, is to have attache validation code to the form only once.
  $("#myForm").validate({
    rules: {

      'name': { // this is value of the name attribute of your field
        required: true,
      },

      'email': {
        required: true,
        // regex: 'regex for email field goes here'
      }
    },
    messages: {
      'name': {
        required: "Name is required"
      },

      'email': {
        required: "Email is required",
        //regex: 'Error response for regex fail goes here'
      }
    }

  });
  $(".submit").click(function() {

    
    // Do a check each time before submit
    if (!$("#myForm").valid())
      alert("Form has validation errors. Cannot submit!!");
    else {
      alert("Form can be submitted!!");
      // do jQuery form submit here
    }
  });

});
.error {
  color: red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script src="https://ajax.aspnetcdn.com/ajax/jquery.validate/1.14.0/jquery.validate.js"></script>

<form method="post" id="myForm">
  <input type="text" name="name" placeholder="Name :" data-required="true" data-type="Name">
  <input type="text" name="email" placeholder="Email:" data-required="true" data-type="Email">
  <input type="text" name="phone" placeholder="Phone Number:" data-required="true" data-type="Phone">
  <select>
    <option value="" disabled selected>College Name:</option>
    <option>College 1</option>
    <option>College 2</option>
    <option>College 3</option>
    <option>College 4</option>
    <option>College 5</option>
    <option>College 6</option>
  </select>
  <select>
    <option value="" disabled selected>Enquiry Type:</option>
    <option>MD/MS Coaching</option>
    <option>MDS Coaching</option>
    <option>DNB Coaching</option>
  </select>
  <textarea>Message</textarea>
  <button class="btn btn-info submit">Submit</button>
</form>

Upvotes: 2

Domain
Domain

Reputation: 11808

You can validate form field using html5. Please see following example to validate form-

<form method="post">                    
                <input type="text" name="name" placeholder="Name :" data-required="true"  required>
                <input type="email" name="email" placeholder="Email:" data-required="true"  required>
                <input type="tel" pattern="[0-9]{10,10}" name="phone" placeholder="Phone Number:" data-required="true"  required>
                <select required>
                    <option value="" disabled selected>College Name:</option>
                    <option>College 1</option>
                    <option>College 2</option>
                    <option>College 3</option>
                    <option>College 4</option>
                    <option>College 5</option>
                    <option>College 6</option>
                </select>  
                <select required>
                    <option value="" disabled selected>Enquiry Type:</option>
                    <option>MD/MS Coaching</option>
                    <option>MDS Coaching</option>
                    <option>DNB Coaching</option> 
                </select>
                <textarea required>Message</textarea>   
             <input type="submit" value="Submit">
            </form>

Upvotes: 0

user5092549
user5092549

Reputation:

You don't necessarily need Javascript or Jquery for validation. You can use HTML5 validations.

Just use pattern for example : pattern="[A-Za-z]"

<input type="text" name="name" placeholder="Name :" data-required="true" data-type="Name" pattern="[A-Za-z]">

the above pattern I used will check that only letters are entered. Either in lowercase or uppercase.

Check these resources to understand more http://www.w3schools.com/tags/att_input_pattern.asp

http://html5pattern.com

Upvotes: 0

ChrisRun
ChrisRun

Reputation: 993

If you only want the textboxes not to allow empty fields then you can add the "required" keyword.

<form action="demo_form.asp" method="post">
  <input type="text" name="fname" required>
  <input type="submit" value="Submit">
</form>

For more HTML5 Form Validation Examples I recommend:

http://www.w3schools.com/js/js_validation.asp

and

http://www.the-art-of-web.com/html/html5-form-validation/

/ChrisRun

Upvotes: 0

Related Questions