页面上多个form,因此用js进行表单提交,将需要提交的form传到js function中。见下面代码<代码为模拟代码,业务逻辑要求我不能修改html上的显示方式><form>
  <input type='hidden' name='greenid' id='greenid' value='111'/>
  <a href='#' onclick='do_sub(this)'>提交<a/>
<form/>
<form>
  <input type='hidden' name='greenid' id='greenid' value='222'/>
  <a href='#' onclick='do_sub(this)'>提交<a/>
<form/>
<form>
  <input type='hidden' name='greenid' id='greenid' value='333'/>
  <a href='#' onclick='do_sub(this)'>提交<a/>
<form/>
function do_sub(f){
  var id = f.greenid.value; // 这里我如何获取值?
  alert(id);
}

解决方案 »

  1.   

    <a href='#' onclick='javascript:do_sub(this)'>提交<a/>
      

  2.   

    var id = document.f.greenid.value; // 这里我如何获取值?
      

  3.   


    这样不行呃。。你这样的话是默认f的name属性为f才行。但是我所有的f的name属性没有定义,因此会报错
      

  4.   

    你的html有误
    <form>
      <input type='hidden' name='greenid' id='greenid' value='111'/>
      <a href='#' onclick='do_sub(this)'>提交</a>
    </form>
    <form>
      <input type='hidden' name='greenid' id='greenid' value='222'/>
      <a href='#' onclick='do_sub(this)'>提交</a>
    </form>
    <form>
      <input type='hidden' name='greenid' id='greenid' value='333'/>
      <a href='#' onclick='do_sub(this)'>提交</a>
    </form>
    注意/符号的位置      function do_sub(f){
            do{
              f = f.previousSibling;
            } while(f && f.nodeType!=1); 
              var id = f.value; // 这里我如何获取值?
              alert(id);
          }js这样写
      

  5.   

    用jquery吧,f是自身,返回上一个兄弟节点,或者返回父节点再由父节点来获取
      

  6.   

    <html><head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>test</title>
    <script>
    function do_sub(f){
      do{
       f = f.parentNode;
      }while(f.tagName!="FORM");
      var id = f.greenid.value; // 这里我如何获取值?
      alert(id);
    }</script>
    </head><body>
    <form>
      <input type='hidden' name='greenid' id='greenid' value='111'/>
      <a href='#' onclick='do_sub(this)'>提交<a/>
    </form>
    <form>
      <input type='hidden' name='greenid' id='greenid' value='222'/>
      <a href='#' onclick='do_sub(this)'>提交<a/>
    </form>
    <form>
      <input type='hidden' name='greenid' id='greenid' value='333'/>
      <a href='#' onclick='do_sub(this)'>提交<a/>
    </form>
    </body></html>
      

  7.   

    jquery我正在用,还请给出代码来参考下,谢谢!
      

  8.   

    jquery的办法不用测试,肯定能用:
    var par = $(this).parent();
    var val = $(par).find("input[name='greenid']");
    alert(val.val());js的方法,为了简化操作 ,html稍做修改 :
    这么改,
    <a href='#' onclick='do_sub(this)' value='111'>提交<a/> 
    js这么取值:do_sub = function(obj){
    alert(obj.value);
    }
      

  9.   


    function do_sub(f){
      var id = f.previousSibling.getProperty("id");; // 这样直接取就可以了
      alert(id);
    }
      

  10.   

    建议还是用jquery,这种操作,他已经出神入化了。
      

  11.   

    jquery是比较好用var id = $(f).prev().attr('id');
      

  12.   

    经过一一测试,jquery的方法理论上是完全可行,但是上面的没有一个代码能运行出结果。。
    4、6楼的方法测试通过!多谢!
    不过还是希望有高手能给出jquery的方法来!
    jquery确实要方便实用。此问题今天2点前结贴。午休去啦