来自iframe的Formvalidator

时间:2010-05-21 08:30:02

标签: javascript

您好我的文档中有以下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。

由于

1 个答案:

答案 0 :(得分:1)

不是传递表单的ID,而是传递form元素(即在函数外部进行查找)。

然后编写两个函数:一个迭代文档形式(将文档作为参数传递)并调用formValidator()。使用document.forms数组找到表单。

再加上第二个迭代所有iframe并调用第一个函数。使用document.iframes数组,然后使用frame.document获取iframe的文档。