列出HTML页面中的所有表单元素

时间:2015-07-21 09:41:50

标签: javascript html forms

我想列出所有表单元素 (包括 FORMs里面 嵌套FRAME IFRAME HTML文档中的

列表如下:

页面形式:(1)www.example.com

  1. frmTestNameB
  2. frmTestNameB
  3. 页面形式:(1)(1)www.example.com/IFramePage.htm

    1. frmFormOfIFrame
    2. 页面形式:(1)(1)(1)www.example.com/Nested/NestedIFramePage.htm

      1. frmFormOfNestedIFrameA
      2. frmFormOfNestedIFrameB
      3. frmFormOfNestedIFrameC
      4. 页面表格:(1)(2)www.example.com/IFramePage.htm

        1. frmFormOfIFrame.htm
        2. 请使用

          正确/修改的JavaScript代码来执行此操作。

          我正在探索以下代码,但它失败了

          var sFormNames = '';
          
          function getFormsNamesForAnyDoc(objDoc) {
            var arrForms = objDoc.Forms;
            sFormNames += '\n\n List of Forms for WebPage' + objDoc.location.href + '\n';
            for (k = 0; k < objForm.length; k++) {
              sFormNames += objForm[k].name + '</td>\n';
            }
          }
          
          function getAllFormsName(objWindow) {
            getFormsNamesForAnyDoc(objWindow.document);
            if (objWindow.frames.length > 0) {
              for (i = 0; i < objWindow.frames.length; i++) {
                getAllFormsName(objWindow.frames[i]);
              }
            }
          }
          
          //Calling
          getAllFormsName(window);
          console.log(sFormNames);
          

1 个答案:

答案 0 :(得分:1)

Chris Pietschmann

中的JavaScript: Loop through all elements in a form提供了以下代码

&#13;
&#13;
 function DisplayFormValues() {
   var str = '';
   var elem = document.getElementById('frmMain').elements;
   for (var i = 0; i < elem.length; i++) {
     str += "<b>Type:</b>" + elem[i].type + "&nbsp&nbsp";
     str += "<b>Name:</b>" + elem[i].name + "&nbsp;&nbsp;";
     str += "<b>Value:</b><i>" + elem[i].value + "</i>&nbsp;&nbsp;";
     str += "<BR>";
   }
   document.getElementById('lblValues').innerHTML = str;
 }
&#13;
<form id="frmMain" name="frmMain">
  <input type="hidden" name="ElemHidden" value="some hidden text" />
  <input type="text" name="ElemText" value="some text" />
  <br />
  <textarea name="ElemTextArea">Some text area text</textarea>
  <br />
  <br />
  <input type="button" value="Test" onclick="DisplayFormValues();" />
</form>
<hr />
<div id="lblValues"></div>
&#13;
&#13;
&#13;

这些和元素的代码由帖子Jan Pfeifer

中的How to access to iframe element?提供
var iframes = document.getElementsByTagName('iframe'); //all iframes on page
for(var i=0; i<iframes.length; i++){
    alert(iframes[i].parentNode.id); // LI.id
    alert(iframes[i].contentWindow.myVar); //iframe's context
}