Simple jQuery Input Validator For Bootstrap Forms - bsValidate
| File Size: | 24.2 KB |
|---|---|
| Views Total: | 14802 |
| Last Update: | |
| Publish Date: | |
| Official Website: | Go to website |
| License: | MIT |
bsValidate is a simple lightweight jQuery plugin used to validate required/email/character text fields for your Bootstrap forms before submitting.
How to use it:
1. Load the jQuery bsValidate plugin in your Bootstrap project, after jQuery JavaScript library.
<script src="jquery.min.js"></script> <script src="bootstrap.min.js"></script> <script src="jquery.bsvalidate.js"></script>
2. The basic example.
<!-- Fields need to be wrapped in a .field-group to ensure proper display of error messages --> <div class="form-group"> <!-- A label should be included, either with the <label> tag or an element given the .label class --> <label class="control-label">Name</label> <!-- This field will be required, because it uses the .required class --> <input type="text" name="name" class="form-control required" /> </div> <div class="form-group"> <label class="control-label">Email</label> <!-- This field will also be required, because it uses the [required] attribute --> <input type="text" name="email" class="form-control" required /> </div> <div class="form-group"> <label class="control-label">Message</label> <!-- No validation will be applied to this field --> <textarea name="message" class="form-control" rows="8"></textarea> </div> <div class="form-group"> <input type="submit" class="btn btn-primary" value="Submit" /> </div>
$('#simpleForm').bsValidate();
3. Custom error messages.
<form id="customMessagesForm" action="success.html" method="post" class="well">
<div class="form-group">
<label class="control-label">Name</label>
<input type="text" name="name" class="form-control" />
</div>
<div class="form-group">
<label class="control-label">Email</label>
<input type="text" name="email" class="form-control" />
</div>
<div class="form-group">
<label class="control-label">Message</label>
<textarea name="message" class="form-control" rows="8"></textarea>
</div>
<div class="form-group">
<input type="submit" class="btn btn-primary" value="Submit" />
</div>
</form>
$('#customMessagesForm').bsValidate({
fields:{
name: {
required: {
helpText: "Please enter your name.",
alert: "You are required to enter your name."
}
},
email: {
required: {
helpText: "Please enter your email.",
alert: "You are required to enter your email."
}
}
}
});
4. Global options.
$('#simpleForm').bsValidate({
// required input fields
requiredSelector: "input.required:not(:checkbox),textarea.required,select.required,[required]",
// A list of fields
fields: {},
// A jQuery selector used to identify the parent element for each field.
formGroupSelector: '.form-group',
// Determines which attribute should be used to identify the form elements from the {fields} object.
attrAsKey: 'name',
// Combine alerts into a single alert box, rather than separate boxes for each message, as an unordered
// list. Optionally, the unordered list can be replaced with a single message if {alertMessage} is set
// to something other than null (see below).
mergeAlerts: false,
// Use a single, general alert message rather than individual messages for each validation error.
// If {mergeAlerts} is set to TRUE, this message will replace the list of validation messages.
alertMessage: null,
// For <select> fields, change what the plugin considers as "blank"
// (i.e. "-- Select --")
blankSelectValue: "",
// Set {novalidate} to false to use browser validation for fields with the [required] attribute
// (browser validation is overriden by default).
novalidate: true,
// Help text only shows on field change by default. Set this to TRUE to display help text for
// fields on form submission as well.
toggleHelpTextOnSubmit: false,
// If a field has a dependency, changing the value of the parent field will trigger validation on the child.
// Set this property to FALSE if you do not want this behavior.
triggerDependentValidationOnChange: true,
// Automatically scroll the page on form submission so the alerts are in view.
autoScrollToAlerts: true,
// Callback function that fires after form submission, but before any validation takes place.
// Could be used to clear out existing error message from server-side validation prior to displaying bsValidate messages.
// DEFAULT: function(){} (FUNCTION)
before: function(){},
// Callback function that fires after all fields pass validation, but before the form submits.
// In case you want to submit your form with JavaScript (Ajax) or run more JavaScript before submitting,
// an event parameter is passed to the function, and event.preventDefault() can be used.
// DEFAULT: function(e){} (FUNCTION)
success: function(e){},
// Callback function that fires if one or more fields fail validation. By default, the form is prevented
// from submitting.
// DEFAULT: function(e){ e.preventDefault(); } (FUNCTION)
fail: function(e){}
});
5. Custom the validator & error messages.
fields: {
// Require the field
required: {
helpText: "Custom required help text.",
alert: "Custom alert for required field."
},
// Make sure it looks like an email address
email: {
helpText: "Custom email address help text.",
alert: "Custom alert for an email address field."
},
// Limit the number of characters
characters: {
limit: 140,
helpText: "Custom character limit help text.",
alert: "Custom alert for a field with a character limit (probably a <textarea> field)."
},
// Compare the field value against a regular expression pattern
regex: {
pattern: /^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/g,
helpText: "This example checks for a URL.",
alert: "But you can put any valid regex pattern here"
},
// Compare the field value against the value of another field
match: {
field: "fieldName",
helpText: "Use the [name] attribute of the field we're checking against.",
alert: "This compares the literal string values of the two fields. So '0.1' and '.10' do not match and will not validate."
}
// Use a custom validation function to evaluate a field value.
custom: {
fn: function(inputElem){
return inputElem.val() !== 'desired value';
},
helpText: "The input element (jQuery object) is passed into the function."
alert: "This can be used for more complex scenarios than the standard options can accommodate. The function needs to return a Boolean value. An expression that evaluates to TRUE will trigger the validation.",
}
},
Change logs:
2016-12-13
- V1.3.0: Add formGroupSelector and attrAsKey settings.
2016-10-04
- Update 'characters' validation option to use 'max' and 'min' properties instead of 'limit' only
2016-09-29
- Add triggerDependentValidationOnChange property
2016-09-22
- Add custom function validation method
2016-07-12
- v1.0.0
2016-02-24
- Removing preventDefault() from form submit event
v0.7.2 (2016-02-19)
- Major updates to dependent fields to fix bugs and add onBlur events
2016-02-18
- Beefing up dependent fields logic
2016-02-11
- Adding conditional validation (required only) for dependent fields
2016-02-05
- Added 'before()' method which fires after submission but before any validation takes place
2015-11-11
- Improved isBlank() function to account for unchecked checkboxes
2015-06-16
- v0.6.1
- Fixed issue when specified field was not found, or form contains no fields
2015-05-01
- v0.6.0
2015-04-30
- Added ability to validate that two field values match
2015-04-22
- Added regex validation option for fields
This awesome jQuery plugin is developed by matthewjmink. For more Advanced Usages, please check the demo page or visit the official website.











