您好我的文档中有以下formvalidatior函数。
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>") : '';
}
它工作正常,现在我的文档中有一个iframe,而且我的框架包含要验证的表单。 以这样一种方式更改此功能的最佳实践是什么,它可以验证文档形式和 来自simeltaniously的iframe。
由于
答案 0 :(得分:1)
不是传递表单的ID,而是传递form
元素(即在函数外部进行查找)。
然后编写两个函数:一个迭代文档形式(将文档作为参数传递)并调用formValidator()
。使用document.forms
数组找到表单。
再加上第二个迭代所有iframe
并调用第一个函数。使用document.iframes
数组,然后使用frame.document
获取iframe
的文档。