2010-05-21 59 views
0

你好,我在我的文檔中有一個如下的formvaltitior函數。來自iframe的Formvalidator

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,並且我的框架包含要驗證的表單。 改變此功能的最佳做法是什麼,以便它可以從文檔形式和iframe驗證文檔形式。

由於

回答

1

不是傳遞形式的ID,它傳遞form元件(即執行功能以外的查找)。

然後寫兩種功能:一種其中的文件的形式的迭代(傳遞文檔作爲一個參數),並調用formValidator()。使用document.forms數組來查找表單。

加上它遍歷所有iframe S和調用第一功能的第二個。使用document.iframes數組,然後使用frame.document獲取iframe的文檔。

+0

感謝您的快速響應。 – user160820 2010-05-21 13:00:41