在form表单中提交时,当有表单嵌套时,应该如何处理两个表单提交到不同的页面?
我遇到的问题是:当我在login.jsp登录时可以提交到后台去,可是里面嵌套的查询表单就用不了,单击没反应,而只有把外面的表格删除后才能执行查询。
我在整个页面前加了登录的验证

解决方案 »

  1.   

    请楼主尽量不要用表单(form)嵌套.一般来说,.嵌套的表单如下:错误的写法.<html>
    <head>
     <script type="text/javascript">
      function js(wd){
        if(wd == 1){
          document.forms[0].action="2.html";
           document.forms[0].submit();
        }
        if(wd == 0){
           document.forms[0].action = "3.html";
           document.forms[0].submit();
        }
      }
      </script>
    </head>
    <body>
    <br/>
    <br/>
    <br/>
    <br/>
    <form action="1.html" name="b1" >
    <br/>
      <input type="text" name="t1" id="t1" value="abc" />
     
    <input type="button" name="go2" value="外表单提交" onclick="js(0)"/>
    </form>
    <form action="2.html" name="b2" id="b2" >
      <br/>
        <input type="text" name="t2" id="t2" value="bcd" />
        <input type="button" name="go" value="内表单提交" onclick="js(1)" />
    </form>
    </body>
    </html>上面你提交只能提交到1.html,不过可以用js来控制提交的页面.

    但是这样写绝对是不好的.
    最好还是将两个表单分离开来写.或是合并为一个表单.
      

  2.   

    我上面代码分离了,下面这个是嵌套表单:<html>
    <head>
     <script type="text/javascript">
      function js(wd){
        if(wd == 1){
          document.forms[0].action="2.html";
           document.forms[0].submit();
        }
        if(wd == 0){
           document.forms[0].action = "3.html";
           document.forms[0].submit();
        }
      }
      </script>
    </head>
    <body>
    <br/>
    <br/>
    <br/>
    <br/>
    <form action="1.html" name="b1" >
    <br/>
      <input type="text" name="t1" id="t1" value="abc" />
     
    <input type="button" name="go2" value="外表单提交" onclick="js(0)"/>
    <form action="2.html" name="b2" id="b2" >
      <br/>
        <input type="text" name="t2" id="t2" value="bcd" />
        <input type="button" name="go" value="内表单提交" onclick="js(1)" />
    </form>
    </form>

    </body>
    </html>
      

  3.   


    直接用一个表单
    html>
        <head>
             <script type="text/javascript">
                 function js(wd){
                   if(wd == 1){
                        document.b1.action="2.html";
                         document.b1.submit();
                   }
                   if(wd == 0){
                         document.b1.action = "3.html";
                         document.b1.submit();
                   }
                 }
                 </script>
            </head>
        <body>
            <br/>
            <br/>
            <br/>
            <br/>
            <form action="#" name="b1" >
                <br/>
                  <input type="text" name="t1" id="t1" value="abc" />             
                <input type="button" name="go2" value="外表单提交" onclick="js(0)"/>
                     <br/>
                       <input type="text" name="t2" id="t2" value="bcd" />
                       <input type="button" name="go" value="内表单提交" onclick="js(1)" />
            </form>
            
    </body>
    </html>
    看看这样行不
      

  4.   

    <HTML>
    <HEAD>
    <script>
    function f1()
    {
    alert("a");
    }function f2()
    {
    alert("b");
    }
    </script>
    </HEAD>
    <BODY>
    <form name="" id="" >
    <form name="" id="" >
    <input type="submit" value="f2" onclick="f2()"/>
    </form>
    <input type="submit" value="f1" onclick="f1()"/>
    </form>
    </BODY>
    </HTML>
    通过函数提交,在两个alert地方写你的处理代码,试试看!
      

  5.   

    任意一个form的提交都将导致浏览器刷新页面的内容,因此很难做到同时提交两个form,如果使用脚本进行提交,并设置target显示服务器的返回信息,这样就不影响后继表单的提交,target可以选择iframe或者新的窗口
      

  6.   


    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <html>
        <head>
             <script type="text/javascript">
                 function send(f){
                   if(f == 1){
                        document.forms[0].action="1.html";
                         document.forms[0].submit();
                   }
                   if(f == 2){
                         document.forms[0].action = "2.html";
                         document.forms[0].submit();
                   }
                 }
                 </script>
            </head>
        <body>
            <form action="" name="form1" >
                <br/>
                  表单不能嵌套
                <input type="button" name="go2" value="提交到1.html" onclick="send(1)"/>
                <input type="button" name="go2" value="提交2.html" onclick="send(2)"/>
            </form>
    </body>
    </html>
      

  7.   

    麻烦,用JS啊function but1(){
    window.location.href="XXXXXXXXX.do?YYYYY=ZZZZ&....."
    }function but2(){
    window.location.href="kkkkkkkk.do?YYYYY=ZZZZ&....."
    }<input type="button" id="but1" onclick="but1();" value="but1">
    <input type="button" id="but2" onclick="but2();" value="but2">
    多方便,更可以使用id来判断是哪个BUTTON,甚至可以新开窗口:function showPicture(imgId){
     var url="/HHHHHHH/XXXXXXXXX.do?";
     window.open(url,'','width=715,height=480,top=60,left=300,resizable=1,scrollbars=1,status=no,toolbar=no,location=no,menu=no');
    }