Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- Ajax form validation
- Created by Konyakov Artem
- http://konyakov.ru/contacts/
- 19.12.2006
- **/
- var formValidationMasks = new Array();
- formValidationMasks['orderBook'] = /^[0-9]{1,4}$/gi;
- formValidationMasks['orderBookDvd'] = /^[0-9]{1,4}$/gi;
- // formValidationMasks['email'] = /\b[A-Z0-9._-]+@[A-Z0-9.-]+\.[A-Z]{2,6}\b/gi;
- var formElementArray = new Array();
- function addEvent(obj, type, fn) {
- if (obj.attachEvent) {
- obj['e' + type + fn] = fn;
- obj[type + fn] = function () {
- obj['e' + type + fn](window.event);
- }
- obj.attachEvent('on' + type, obj[type + fn]);
- } else obj.addEventListener(type, fn, false);
- }
- function removeEvent(obj, type, fn) {
- if (obj.detachEvent) {
- obj.detachEvent('on' + type, obj[type + fn]);
- obj[type + fn] = null;
- } else obj.removeEventListener(type, fn, false);
- }
- function validateInput(e, inputObj) {
- if (!inputObj) inputObj = this;
- var inputValidates = true;
- if (formElementArray[inputObj.name]['required'] && inputObj.tagName == 'INPUT' && inputObj.value.length == 0) inputValidates = false;
- if (formElementArray[inputObj.name]['required'] && inputObj.tagName == 'SELECT' && inputObj.selectedIndex == 0) {
- inputValidates = false;
- }
- if (formElementArray[inputObj.name]['mask'] && !inputObj.value.match(formValidationMasks[formElementArray[inputObj.name]['mask']])) inputValidates = false;
- if (formElementArray[inputObj.name]['freemask']) {
- var tmpMask = formElementArray[inputObj.name]['freemask'];
- tmpMask = tmpMask.replace(/-/g, '\\-');
- tmpMask = tmpMask.replace(/S/g, '[A-Z]');
- tmpMask = tmpMask.replace(/N/g, '[0-9]');
- tmpMask = eval("/^" + tmpMask + "$/gi");
- if (!inputObj.value.match(tmpMask)) inputValidates = false
- }
- if (formElementArray[inputObj.name]['regexpPattern']) {
- var tmpMask = eval(formElementArray[inputObj.name]['regexpPattern']);
- if (!inputObj.value.match(tmpMask)) inputValidates = false
- }
- if (!formElementArray[inputObj.name]['required'] && inputObj.value.length == 0 && inputObj.tagName == 'INPUT') inputValidates = true;
- if (inputValidates) {
- inputObj.parentNode.className = 'validInput';
- } else {
- inputObj.parentNode.className = 'invalidInput'
- }
- }
- function isFormValid() {
- var divs = document.getElementsByTagName('DIV');
- for (var no = 0; no < divs.length; no++) {
- if (divs[no].className == 'invalidInput') return false;
- }
- return true;
- }
- function initFormValidation() {
- var inputFields = document.getElementsByTagName('INPUT');
- var selectBoxes = document.getElementsByTagName('SELECT');
- var inputs = new Array();
- for (var no = 0; no < inputFields.length; no++) {
- inputs[inputs.length] = inputFields[no];
- }
- for (var no = 0; no < selectBoxes.length; no++) {
- inputs[inputs.length] = selectBoxes[no];
- }
- for (var no = 0; no < inputs.length; no++) {
- var required = inputs[no].getAttribute('required');
- if (!required) required = inputs[no].required;
- var mask = inputs[no].getAttribute('mask');
- if (!mask) mask = inputs[no].mask;
- var freemask = inputs[no].getAttribute('freemask');
- if (!freemask) freemask = inputs[no].freemask;
- var regexpPattern = inputs[no].getAttribute('regexpPattern');
- if (!regexpPattern) regexpPattern = inputs[no].regexpPattern;
- var div = document.createElement('DIV');
- div.className = 'invalidInput';
- inputs[no].parentNode.insertBefore(div, inputs[no]);
- div.appendChild(inputs[no]);
- div.style.width = inputs[no].offsetWidth + 'px';
- addEvent(inputs[no], 'blur', validateInput);
- addEvent(inputs[no], 'change', validateInput);
- addEvent(inputs[no], 'paste', validateInput);
- addEvent(inputs[no], 'keyup', validateInput);
- formElementArray[inputs[no].name] = new Array();
- formElementArray[inputs[no].name]['mask'] = mask;
- formElementArray[inputs[no].name]['freemask'] = freemask;
- formElementArray[inputs[no].name]['required'] = required;
- formElementArray[inputs[no].name]['regexpPattern'] = regexpPattern;
- validateInput(false, inputs[no]);
- }
- }
- window.onload = initFormValidation;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement