使用window.event.srcElement.tagname="INPUT"
window.event.srcElement.tagname="SELECT"
再遍历所有控件

解决方案 »

  1.   

    就用formname.elements.就能遍历所有表单元素了..
    for(i=0;i<formname.elements.length;i++)
    {
        alert(formname.elements[i].value);
        alert(formname.elements[i].disabled)
        alert(formname.elements[i].type)
    }
      

  2.   

    for(vari=0;i<formName.elements.length;i++)
    {
    formName.elements[i].value;
    }
      

  3.   

    To yonghengdizhen(风儿她轻轻的吹):
       我是想问,我是否可以把整个数组,放到一个hidden域里,提交后,在下一个页面得到这个数组的所有值??
       谢谢
      

  4.   

    To yonghengdizhen(风儿她轻轻的吹):
       是不是定义个数组var arr ,赋值后,然后让一个hidden域的value=arr 就可以了呢??提交可以得到这个arr??
       实际是因为我前面问的,因为我的表单的元素是动态的,而要想把表单的一些相关信息(值,元素名等等)传递给下个页面。所以我想用数组,
       你认为可以么????或者还有其他办法??谢谢
      

  5.   

    <script>
    function setarray()
    {
    a="";b="";
    for(i=0;i<document.myform.elements.length;i++)
    {
    if(document.myform.elements[i].type=="text")
       a+="<input type=hidden name=mytext value="+document.myform.elements[i].value+">";
    else if(document.myform.elements[i].type=="select-one")
       b+="<input type=hidden name=myselect value="+document.myform.elements[i].value+">";
    }
    document.all.textarray.innerHTML=a;
    document.all.selectarray.innerHTML=b;
    document.myform.submit();
    }
    </script>
    <form name=myform action=next.jsp>
    <input type=text>
    <input type=text>
    <select>
    <option value=1>1
    <option value=2>2
    </select>
    <input type=text>
    <select>
    <option value=11>11
    <option value=22>22
    <option value=33>33
    </select>
    <input type=button value=submit onclick=setarray()>
    <div id=textarray></div>
    <div id=selectarray></div>
    </form>next.jsp
    <%
    String a[]=request.getParameterValues("mytext");
    String b[]=request.getParameterValues("myselect");
    %>text<br><%
    for(int i=0;i<a.length;i++)
    {
    %>
    <%=a[i]%><br>
    <%
    }
    %>
    select<br><%
    for(int i=0;i<b.length;i++)
    {
    %>
    <%=b[i]%><br>
    <%
    }
    %>
      

  6.   

    To seabell(百合心):
      else if(document.myform.elements[i].type=="select-one")
       b+="<input type=hidden name=myselect value="+document.myform.elements[i].value+">";
    }这里只是考虑到了单选列表的情况,如果是多选的,这样就得不到了,如果是多选的,应该怎样考虑到数组的情况呢?
    谢谢
      

  7.   

    <script>
    function setarray()
    {
    a="";b="";
    for(i=0;i<document.myform.elements.length;i++)
    {
    if(document.myform.elements[i].type=="text")
       a+="<input type=hidden name=mytext value="+document.myform.elements[i].name+";"+document.myform.elements[i].value+">";
    else if(document.myform.elements[i].type=="select-one")
       b+="<input type=hidden name=myselect value="+document.myform.elements[i].name+";"+document.myform.elements[i].value+">";
    else if(document.myform.elements[i].type=="select-multiple")
    {
    mulvalue="";
    for(j=0;j<document.myform.elements[i].options.length;j++)
    if(document.myform.elements[i].options[j].selected)
    mulvalue+=document.myform.elements[i].options[j].value+";"
       b+="<input type=hidden name=myselect value="+document.myform.elements[i].name+";"+mulvalue+">";
    }
    }
    document.all.textarray.innerHTML=a;
    document.all.selectarray.innerHTML=b;
    document.myform.submit();
    }
    </script>
    <form name=myform action=next.jsp method=post>
    <input type=text name=text1>
    <input type=text name=text2>
    <select name=sel1>
    <option value=1>1
    <option value=2>2
    </select>
    <input type=text name=text3>
    <select multiple name=sel2>
    <option value=11>11
    <option value=22>22
    <option value=33>33
    </select>
    <input type=button value=submit onclick=setarray()>
    <div id=textarray></div>
    <div id=selectarray></div>
    </form>