document.getElementById 测试可用,当然获取 form 滴代码要写在 form 后面!
测试环境如下:
Mozilla/5.0 (Windows; U; Windows NT 5.2; zh-CN; rv:1.9.0.4) Gecko/2008102920 
Firefox/3.0.4<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
 <head>
  <title> new document </title>
  <meta name="generator" content="editplus" />
  <meta name="author" content="" />
  <meta name="keywords" content="" />
  <meta name="description" content="" />
 </head> <body>
<form id="form1" name="form1" method="post" action='' onsubmit="_post(this);return false;">
<input name="Title" type="text" id="Title" />
<input name="Title2" type="text" id="Title" />
<input type="submit" name="button" value="提交" />
</form> <form id="form2" name="form1" method="post" action='' onsubmit="_post(this);return false;">
<input name="Title0" type="text" id="Title" />
<input name="Title02" type="text" id="Title" />
<input name="Title03" type="text" id="Title" />
<input name="Title04" type="text" id="Title" />
<input type="submit" name="button" value="提交" />
</form>
 </body>
 <script type="text/javascript">
 <!--
var collInput = document.getElementById("form1").getElementsByTagName("input");
alert(collInput.length);
collInput = document.getElementById("form2").getElementsByTagName("input");
alert(collInput.length);
 //-->
 </script>
</html>

解决方案 »

  1.   


    <script>
    function test(){
    var ins=document.all.form1.getElementsByTagName("INPUT");
    alert(ins.length);
    var ins2=document.all.form2.getElementsByTagName("INPUT");
    alert("--:"+ins2.length);
    }
    </script>
    <form id="form1" name="form1" method="post" action='' onsubmit="_post(this);return false;"> 
    <input name="Title" type="text" id="Title" /> 
    <input name="Title2" type="text" id="Title" /> 
    <input name="Title3" type="text" id="Title" /> 
    <input name="Title4" type="text" id="Title" /> 
    <input type="submit" name="button" value="提交" /> 
    </form> <form id="form2" name="form2" method="post" action='' onsubmit="_post(this);return false;">
    <input name="Title0" type="text" id="Title" /> 
    <input name="Title02" type="text" id="Title" /> 
    <input name="Title03" type="text" id="Title" /> 
    <input name="Title04" type="text" id="Title" /> 
    <input type="submit" name="button" value="提交" /> 
    </form> 
    <input type="button" value="aa" onclick="test()">
      

  2.   

    FF3.0.6版本下测试通过,可以获得
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title></title>
    </head>
    <body>
        <form id="form1" name="form1" method="post" action='' onsubmit="_post(this);return false;"> 
        <input name="Title" type="text" id="Title" /> 
        <input name="Title2" type="text" id="Title02" /> 
        <input name="Title3" type="text" id="Title03" /> 
        <input name="Title4" type="text" id="Title04" /> 
        <input type="submit" name="button" value="提交" /> 
        </form>     <form id="form2" name="form1" method="post" action='' onsubmit="_post(this);return false;">> 
        <input name="Title0" type="text" id="Title0" /> 
        <input name="Title02" type="text" id="Title2" /> 
        <input name="Title03" type="text" id="Title3" /> 
        <input name="Title04" type="text" id="Title4" /> 
        <input type="submit" name="button" value="提交" /> 
        </form> 
    </body><script type="text/javascript" >    var rs = document.getElementById("form1").getElementsByTagName("INPUT");
        alert(rs.length);
        
    </script>
    </html>
      

  3.   

    var rs = document.getElementById("form1").getElementsByTagName("INPUT");
    for(var i=0;i<rs.length;i++)
    {
       go……
    }
      

  4.   

    谢了,我知道怎么回事了。这个垃圾火狐不认识我的HTML代码,改了代码就对了,
    去他的哦。很简单的
    以前写的没有错,但一直取不到,原来是这么回事。。想不通。。<script type="text/javascript" >
        function _post(obj){
            var rs = obj.getElementsByTagName("input");
            alert(rs.length);
            }
    </script>
      

  5.   

    getElementsByTagName("TagName") 不是 Form 的方法,是 document 对象的方法,你通过 Form 调用 getElementsByTagName("TagName")肯定是不行的,你可以先用通过 var form1 = document.getElementById("FormID") 得到对应的 Form, 再通过 
    var c = form1..childNodes; 
    for(var i = 0; i < c.length; i++){
        if(c[i].tagName == "input"){ //取得input元素,也记不清tagName返回的是小写还是大写了
            //在这里写你的处理代码
        }
    }
      

  6.   

    function _post(obj)
    {
    var puts = document.getElementById(obj.id).getElementsByTagName("input");
    var s = "";
    for(var i=0;i<puts.length;i++){
    s += "&"+ puts[i].name +"="+ escape(puts[i].value);
    }
    return s.substr(1);
    }
      

  7.   

    非也非也,仔细看下最后滴 Applies To !!!
    getElementsByTagName MethodRetrieves a collection of objects based on the specified element name.SyntaxcollObjects = object.getElementsByTagName(sTagName)
    ParameterssTagName Required. String that specifies the name of an element. Return ValueReturns a collection of objects with the specified element name.Applies ToA, ACRONYM, ADDRESS, APPLET, AREA, B, BASE, BASEFONT, BDO, BGSOUND, BIG, BLOCKQUOTE, BODY, BR, BUTTON, CAPTION, CENTER, CITE, CODE, COL, COLGROUP, CUSTOM, DD, DEL, DFN, DIR, DIV, DL, document, DT, EM, EMBED, FIELDSET, FONT, FORM, FRAME, FRAMESET, HEAD, hn, HR, HTML, I, IFRAME, IMG, INS, KBD, LABEL, LEGEND, LI, LINK, LISTING, MAP, MARQUEE, MENU, OL, P, PLAINTEXT, PRE, Q, S, SAMP, SCRIPT, SELECT, SMALL, SPAN, STRIKE, STRONG, SUB, SUP, TABLE, TBODY, TD, TEXTAREA, TFOOT, TH, THEAD, TITLE, TR, TT, U, UL, VAR, XMP
      

  8.   

    1可以用jQuery里的serialize()。
    2我以前写的一个函数,/**
     * 函数jsonForm 将表单对象所包含的控件的内容转换成json对象。
     * 参数1 为表单对象或表单对象的id;
     * 参数2 为表单对象中要略过的控件,可为“控件name属性”,“控件元素名”,控件type
     */
    function jsonForm(O,skip){
    if(!O)return;
    var O=typeof(O)=='string'?$(O):O, skip=ext$({},skip), o={};
    if(typeof(O)=='object'){
    if(!O.nodeName){return O;}
    if(O.nodeName=='FORM'){
    var an=(typeof(skip.name)=='string')?skip.name.toLowerCase().split(','):isArray(skip.name)?skip.name:[],
    ae=(typeof(skip.elem)=='string')?skip.elem.toUpperCase().split(','):isArray(skip.elem)?skip.elem:[],
    at=(typeof(skip.type)=='string')?skip.type.toLowerCase().split(','):isArray(skip.type)?skip.type:[];
    for(var x=0,L=O.length;x<L;x++){
    if(!inArray(O[x].nodeName,ae)&& !O[x].disabled &&O[x].name&&O[x].name!=''&&!inArray(O[x].name.toLowerCase(),an)){
    switch(O[x].nodeName){
    case 'INPUT':
    if(!inArray(O[x].type,at)){
    switch(O[x].type){
    case 'text':
    case 'hidden':
    case 'password':
    if(/%5B%5D$|\[\]$/i.test(O[x].name)){
    var N=O[x].name.replace(/%5B%5D$|\[\]$/i,'');
    if(o.hasOwnProperty(N)){
    o[N].push(O[x].value);
    }else{
    o[N]=[O[x].value];
    }
    }else{
    o[O[x].name]=O[x].value;
    }
    break;
    case 'radio':
    case 'checkbox':
    if(O[x].checked){
    if(/%5B%5D$|\[\]$/i.test(O[x].name)){
    var N=O[x].name.replace(/%5B%5D$|\[\]$/i,'');
    if(o.hasOwnProperty(N))
    o[N].push(O[x].value);
    else
    o[N]=[O[x].value];
    }
    else
    o[O[x].name]=O[x].value;
    }
    break;
    }
    }
    break;
    case 'TEXTAREA':
    if(/%5B%5D$|\[\]$/i.test(O[x].name))
    o[O[x].name.replace(/%5B%5D$|\[\]$/i,'')]=[O[x].value];
    else
    o[O[x].name]=O[x].value;
    break;
    case 'SELECT':
    for(var z=0,J=O[x].length;z<J;z++){
    var Oz=O[x].options[z];
    if(Oz.selected){
    if(/%5B%5D$|\[\]$/i.test(O[x].name)){
    var N=O[x].name.replace(/%5B%5D$|\[\]$/i,'');
    if(o.hasOwnProperty(N))
    o[N].push(Oz.value);
    else
    o[N]=[Oz.value];
    }
    else
    o[O[x].name]=Oz.value;
    }
    }
    break;
    }
    }
    }
    }
    }
    return o;
    }再用另外一个函数将json对象uri化。function uriJson(o){
    if(!o||'object'!==typeof(o))return;
    var a=[],A=arguments;
    for(var z in o){
    if(null===o[z]){
    a.push(encodeURIComponent(z) +'=');
    continue;
    }
    if(isArray(o[z])){
    for(var x=0,L=o[z].length;x<L;x++){
    if(typeof(o[z][x])=='object'){
    a.push(A.callee(o[z][x]));
    }else{
    a.push(encodeURIComponent(z +'[]') +'='+ encodeURIComponent(o[z][x]));
    }
    }
    }else if(o[z]&&typeof(o[z])=='object'){
    a.push(A.callee(o[z]));
    }else if(typeof(o[z])=='function'){
    continue;
    }else{
    a.push(encodeURIComponent(z) +'='+ encodeURIComponent(o[z]));
    }
    }
    return a.join('&').replace(/%20/g, '+');
    }里面还用到另外几个函数function inArray(v,a,s){
    if(!isArray(a)||a.length==0)return false;
    var eq=(function(){
    if(s)return function(x,y){return x===y;};
    else return function(x,y){return x==y;};
    })();
    if(typeof(v)=='string'||typeof(v)=='number'){
    for(var z=0,L=a.length;z<L;z++){
    if(eq(a[z],v))return true;
    }
    }
    return false;
    }
    function isArray(a){
    if(!a)return false;
    return (typeof a != "undefined" ? a.constructor == Array : typeof a.length != "undefined");
    }
    function ext$(o,O,s){
    if('object'!=typeof(o)||'object'!=typeof(O)||!o||!O)return o;
    if(s){
    for(var z in o){
    if(O.hasOwnProperty(z))
    o[z]=O[z];
    }
    }else{
    for(var z in O){
    o[z]=O[z];
    }
    }
    return o;
    }就你的form1var foo1=uriJson(jsonForm('form1',{elem:['select','textarea']}));lz测试一下