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 form
element (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 the document.forms
array to locate the forms.
Plus a second one which iterates over all iframe
s and calls the first function. Use the document.iframes
array and then frame.document
to get the document of the iframe
.
精彩评论