var arrSlelects=document.forms[0].getElementsByTagName('select');
var arrInputs=document.forms[0].getElementsByTagName('input');
...如此类推
然后for循环数组进行你需要的操作

解决方案 »

  1.   

    两个问题其它是一样的,
    最好的方法就是遍历,
    不知道楼主对遍历是怎么认识的,
    一个for循环就可以解决问题了。总不会想一个一个去访问吧!
      

  2.   

    <!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>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>无标题文档</title>
    <script language="javascript">
    function Init()
    {
    var objs = document.getElementById("form1").elements;
    for(var i=0;i<objs.length;i++)
    {

    alert(objs[i].type);

    switch(objs[i].type)
    {
    case "radio":  //单选按钮
    //....操作
    break;
    case "text": //输入框
    //....操作
    break;


    //...... }
    }
    }
    </script>
    </head><body  onLoad="Init()">
    <form name="form1" method="post" action="">
      <label>
      <input type="radio" name="radio" id="radio" value="radio">
      </label>
      <label>
      <input type="submit" name="button" id="button" value="提交">
      </label>
      <label>
      <input type="text" name="textfield" id="textfield">
      </label>
      <label>
      <select name="select" id="select">
      </select>
      </label>
    </form>
    </body>
    </html>
      

  3.   

    关于判断表单为空,我自己想了一个办法:
    先把表单序列化,可以使用prototype的Form.serialize()函数,就是将表单转成类似"参数名1=值1&参数名2=值2……"的形式,如果表单为空,那么所有值的位置一定是空的,所以用正则表达式/=[^&\s]/i去test一下表单序列化字符串就可以了。不知道我的这种想法判断够不够充分,请各位帮忙看看