Hello I have a following formvalidatior function in my document.
function formValidator(formid) {
var form = cic.$(formid);
if(!form) return ('');
var errors = [];
var len = form.elements.length;
for(var elementIdx = 0; elementIdx < len; elementIdx++) {
var element = form.elements[elementIdx];
if(!element && !element.getAttribute('validationtype')) return ('');
switch (element.getAttribute('validationtype')) {
case 'text' : if(cic.getValue(element).strip() == "") errors.push(element.getAttribute('validationmsg'));
break;
case 'email' : if(!cic.isEmail(cic.getValue(element))) errors.push(element.getAttribute('validationmsg'));
break;
case 'numeric' : if(isNaN(cic.getValue(element).replace(',', '.'))) errors.push(element.getAttribute('validationmsg'));
break;
case 'confirm' : if(cic.getValue(cic.$(element.getAttribute('sourcefield'))) !== cic.getValue(element)) errors.push(element.getAttribute('validationmsg'));
break;
}
}
return (errors.length > 0) ? '<li>' + errors.uniq().join("<li>") : '';
}
It works fine, now I have an Iframe in my document, and that I frame contains the form to validate.
What will be the best practice to change this function in such a way that it can validate document forms and
iframe from simeltaniously.
Thanks
Instead of passing the ID of the form, pass it the
formelement (i.e. do the lookup outside the function).Then write two functions: One which iterates of the forms of a document (pass the document as a parameter) and calls
formValidator(). Use thedocument.formsarray to locate the forms.Plus a second one which iterates over all
iframes and calls the first function. Use thedocument.iframesarray and thenframe.documentto get the document of theiframe.