/* * jQuery Form Validation plug-in version 1.1.5 * Last Update : July 13, 2008 * New features: * onError event * Add call back support - callback function is called when validation is error, return true form will be submited otherwise not. * Error list in the alert msg * Alias to field name * Select diff html attributes for validation rules instead off using custom html attributes * * Bug Fixed: * now support radio buttons * defval to work with LabelIn plugin * now support textarea * * Copyright (c) 2007 E-wave web design * http://www.ewave.com.au/ * * Licensed under the GPL license: * http://www.gnu.org/licenses/gpl.html * * @requires jQuery v 1.2.1 or later * @name formValidation * @usage $('#form1').formValidation({ * newmask : /[0-9]{1}-[0-9]{1}/, // 1-1 * err_class : "invalidInput" * }); * * HTML *
* * * ", display_alert : true //onsubmit if invalid form display an error message }, settings); err_msgs = jQuery.extend({ required : 'is required
', mask : 'Invalid', equal : 'is not equal to' }, err_msgs); return iForm.submit( function () { settings['enable'] = true; err_list = ''; var frm = true; var frmid=$(this).attr("id"); $("form#"+frmid+" div.errors").html(""); $(this).find('*').filter("input, select, textarea").each(function() { ret = isValid($(this)); if (!ret) frm = ret; }); if (frm && (typeof settings['callback'] == 'string' && eval('typeof ' + settings['callback']) == 'function')) // form validation ok and callback function defined frm = eval(settings['callback'] +'()'); //call external validation function else if (settings['display_alert']) // error validation and display alert on $(".errors").html(settings['err_message'] + err_list); if((document.getElementById('register')) && (document.getElementById('register').style.display == 'block')) { if($('#register #profession option[@selected]').val() == "empty") { //$(".errors").append('

- "Please select valid profession"

'); errorvalue=$("form#register .errors").html(); index=errorvalue.indexOf('

- "Please select valid profession"

'); if(index<0) $("form#register .errors").append('

- "Please select valid profession"

'); frm=false; } if($('#register #FieldOfProfession option[@selected]').val() == "empty") { //$(".errors").append('

- "Please select valid Field of profession"

'); errorvalue=$("form#register .errors").html(); index=errorvalue.indexOf('

- "Please select valid Field of profession"

'); if(index<0) $("form#register .errors").append('

- "Please select valid Field of profession"

'); frm=false; } if($('#register #areaOfInterest option[@selected]').val() == "empty") { // $(".errors").append('

- "Please select valid Area of interest"

'); errorvalue=$("form#register .errors").html(); index=errorvalue.indexOf('

- "Please select valid Area of interest"

'); if(index<0) $("form#register .errors").append('

- "Please select valid Area of interest"

'); frm=false; } } if((document.getElementById('editprofile')) && (document.getElementById('editprofile').style.display == 'block')) { if($('#editprofile #profession option[@selected]').val() == "empty") { //$(".errors").append('

- "Please select valid profession"

'); errorvalue=$("form#editprofile .errors").html(); index=errorvalue.indexOf('

- "Please select valid profession"

'); if(index<0) $("form#editprofile .errors").append('

- "Please select valid profession"

'); frm=false; } if($('#editprofile #FieldOfProfession option[@selected]').val() == "empty") { //$(".errors").append('

- "Please select valid Field of profession"

'); errorvalue=$("form#editprofile .errors").html(); index=errorvalue.indexOf('

- "Please select valid Field of profession"

'); if(index<0) $("form#editprofile .errors").append('

- "Please select valid Field of profession"

'); frm=false; } if($('#editprofile #areaOfInterest option[@selected]').val() == "empty") { // $(".errors").append('

- "Please select valid Area of interest"

'); errorvalue=$("form#editprofile .errors").html(); index=errorvalue.indexOf('

- "Please select valid Area of interest"

'); if(index<0) $("form#editprofile .errors").append('

- "Please select valid Area of interest"

'); frm=false; } } return frm; }).find('*').filter("input, select, textarea").each(function() { $(this).click(function() { isValid($(this)); }).change(function() { isValid($(this)); }).keyup(function() { isValid($(this)); }).focus(function() { isValid($(this)); }).blur(function() { isValid($(this)); }); }); function isValid(obj) { // check if field is valid if (!settings['enable']) return true; if (required(obj) && mask(obj) && equal(obj)) { obj.removeClass(settings['err_class']); return true; } else { obj.addClass(settings['err_class']); return false; } } //field is required function required(obj) { if (!(obj.attr(settings['required']) == "true")) //if not required return true return true; if(obj.is("input[@type=checkbox]") || obj.is('input[@type=radio]')) { //if checkbox and checked if (obj.attr('checked')) return true; } else if((obj.is("input") || obj.is("select") || obj.is("textarea")) && (!obj.is("button"))) // if not empty if (obj.val() != '' && (!(defval(obj)))) return true; if (settings['err_list']) err_list += '- "' + obj.attr(settings['alias']) + '" ' + err_msgs['required'] + '\n'; return false; } //compare field to mask provided in the extend array function mask(obj) { tname = obj.attr('mask'); //read mask name from input field if (tname == undefined || obj.val() == '') return true; tmask = settings[obj.attr(settings['mask'])]; // get mask pattern from settings ret = tmask.test(obj.val()); //test reg exp ret1 = tmask.exec(obj.val()); if (ret) return true; if (settings['err_list']) err_list += '- ' + err_msgs['mask'] + ' "' + obj.attr(settings['alias']) + '"\n'; return false; } //copare field to another field read from the equal attribute function equal(obj) { tname = obj.attr(settings['equal']); //get comparison field tval = $('#'+tname).val(); if (tname == undefined) return true; if (tval == obj.val()) return true; if (settings['err_list']) err_list += '- "' + obj.attr(settings['alias']) + '" ' + err_msgs['equal'] + ' ' + $('#'+tname).attr('alias') + '\n'; return false; } //compare field with defval attr, make sure that val was altered function defval(obj) { tdefval = obj.attr(settings['defval']); //get comparison field tval = obj.val(); if (tdefval == undefined) return false; if (tval != tdefval) return false; return true; } } })(jQuery); }