123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201 |
- var FormValidation = function () {
- return {
- //main function to initiate the module
- init: function () {
- // for more info visit the official plugin documentation:
- // http://docs.jquery.com/Plugins/Validation
- var form1 = $('#form_sample_1');
- var error1 = $('.alert-error', form1);
- var success1 = $('.alert-success', form1);
- form1.validate({
- errorElement: 'span', //default input error message container
- errorClass: 'help-inline', // default input error message class
- focusInvalid: false, // do not focus the last invalid input
- ignore: "",
- rules: {
- name: {
- minlength: 2,
- required: true
- },
- email: {
- required: true,
- email: true
- },
- url: {
- required: true,
- url: true
- },
- number: {
- required: true,
- number: true
- },
- digits: {
- required: true,
- digits: true
- },
- creditcard: {
- required: true,
- creditcard: true
- },
- occupation: {
- minlength: 5,
- },
- category: {
- required: true
- }
- },
- invalidHandler: function (event, validator) { //display error alert on form submit
- success1.hide();
- error1.show();
- App.scrollTo(error1, -200);
- },
- highlight: function (element) { // hightlight error inputs
- $(element)
- .closest('.help-inline').removeClass('ok'); // display OK icon
- $(element)
- .closest('.control-group').removeClass('success').addClass('error'); // set error class to the control group
- },
- unhighlight: function (element) { // revert the change dony by hightlight
- $(element)
- .closest('.control-group').removeClass('error'); // set error class to the control group
- },
- success: function (label) {
- label
- .addClass('valid').addClass('help-inline ok') // mark the current input as valid and display OK icon
- .closest('.control-group').removeClass('error').addClass('success'); // set success class to the control group
- },
- submitHandler: function (form) {
- success1.show();
- error1.hide();
- }
- });
- //Sample 2
- $('#form_2_select2').select2({
- placeholder: "Select an Option",
- allowClear: true
- });
- var form2 = $('#form_sample_2');
- var error2 = $('.alert-error', form2);
- var success2 = $('.alert-success', form2);
- form2.validate({
- errorElement: 'span', //default input error message container
- errorClass: 'help-inline', // default input error message class
- focusInvalid: false, // do not focus the last invalid input
- ignore: "",
- rules: {
- name: {
- minlength: 2,
- required: true
- },
- email: {
- required: true,
- email: true
- },
- category: {
- required: true
- },
- options1: {
- required: true
- },
- options2: {
- required: true
- },
- occupation: {
- minlength: 5,
- },
- membership: {
- required: true
- },
- service: {
- required: true,
- minlength: 2
- }
- },
- messages: { // custom messages for radio buttons and checkboxes
- membership: {
- required: "Please select a Membership type"
- },
- service: {
- required: "Please select at least 2 types of Service",
- minlength: jQuery.format("Please select at least {0} types of Service")
- }
- },
- errorPlacement: function (error, element) { // render error placement for each input type
- if (element.attr("name") == "education") { // for chosen elements, need to insert the error after the chosen container
- error.insertAfter("#form_2_education_chzn");
- } else if (element.attr("name") == "membership") { // for uniform radio buttons, insert the after the given container
- error.addClass("no-left-padding").insertAfter("#form_2_membership_error");
- } else if (element.attr("name") == "service") { // for uniform checkboxes, insert the after the given container
- error.addClass("no-left-padding").insertAfter("#form_2_service_error");
- } else {
- error.insertAfter(element); // for other inputs, just perform default behavoir
- }
- },
- invalidHandler: function (event, validator) { //display error alert on form submit
- success2.hide();
- error2.show();
- App.scrollTo(error2, -200);
- },
- highlight: function (element) { // hightlight error inputs
- $(element)
- .closest('.help-inline').removeClass('ok'); // display OK icon
- $(element)
- .closest('.control-group').removeClass('success').addClass('error'); // set error class to the control group
- },
- unhighlight: function (element) { // revert the change dony by hightlight
- $(element)
- .closest('.control-group').removeClass('error'); // set error class to the control group
- },
- success: function (label) {
- if (label.attr("for") == "service" || label.attr("for") == "membership") { // for checkboxes and radip buttons, no need to show OK icon
- label
- .closest('.control-group').removeClass('error').addClass('success');
- label.remove(); // remove error label here
- } else { // display success icon for other inputs
- label
- .addClass('valid').addClass('help-inline ok') // mark the current input as valid and display OK icon
- .closest('.control-group').removeClass('error').addClass('success'); // set success class to the control group
- }
- },
- submitHandler: function (form) {
- success2.show();
- error2.hide();
- }
- });
- //apply validation on chosen dropdown value change, this only needed for chosen dropdown integration.
- $('.chosen, .chosen-with-diselect', form2).change(function () {
- form2.validate().element($(this)); //revalidate the chosen dropdown value and show error or success message for the input
- });
- //apply validation on select2 dropdown value change, this only needed for chosen dropdown integration.
- $('.select2', form2).change(function () {
- form2.validate().element($(this)); //revalidate the chosen dropdown value and show error or success message for the input
- });
- }
- };
- }();
|