Reputation: 97
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
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
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
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
Upvotes: 0
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