<form action="" method="post" style="width: 800px" name="form1">
  ...
  <input name="delete" type="button" class="btn" id="btn" value="删除" onClick="dele();" />
  <input name="save" type="button" class="btn" id="btn" value="保存" onClick="save();" />
        <script type="text/javascript">
      function dele(){
      document.form1.action="servlet/DeleServert";
      document.form1.submit();
     
      };
      function save(){
      document.form1.action="servlet/SaveServert";
      document.form1.submit();
     
      };
     </script>
</form>
这样为什么不能提交,难道 document.form1.action只能是jsp页面吗?这是什么原因!

解决方案 »

  1.   

    document.form1.action= "servlet/SaveServert "; 
    赋值不对,应该是servlet/SaveServert.do或者其他web.xml配置的后缀
      

  2.   

     document.form1.action写错了吧
      

  3.   

    document.forms[0].action= "servlet/DeleServert "; 第一个form 用 forms[0]第二个用 forms[1]
      

  4.   


    这个没有Struts呀,用的Servelt。
    并且这个Servlet也在web里面配置了!
      

  5.   

    恩,同意。确实是应该是servlet/SaveServert.do这里红色的部分就是你web.xml中<servlet-mapping>节点下<url-parttern>节点中定义的那个*.do或者*.action等。
      

  6.   

    <form action="" method="post" name="form1">
    <input name="delete " type="button" class="btn " id="btn "
    value="删除 " onClick="dele(); " />
    <input name="save " type="button" class="btn " id="btn " value="保存 "
    onClick="save(); " />
    <script type="text/javascript" language="javascript">  
              function dele(){ 
              document.form1.action= "delete"; 
              document.form1.submit(); 
              }; 
              
              function save(){ 
              document.form1.action= "servlet/SaveServert"; 
              document.form1.submit(); 
              
              }; 
              </script>
    HTML的  这个可以提交  没有问题  你看哈  你报的是什么错  路径是否正确
      

  7.   

    好像是csdn自己加的。我这里没有的!
      

  8.   

    你在html乱加空格也就算了,在javascript里面的字符串里也乱加空格可不行啊。。你右"前都有空格,先去掉,再看看有没有别的错吧。。
      

  9.   

    补充
    web.xml
     <servlet>
        <servlet-name>DeleDervert</servlet-name>
        <servlet-class>com.test.DeleDervert</servlet-class>
      </servlet>
      <servlet>
        <servlet-name>SaveServert</servlet-name>
        <servlet-class>com.test.SaveServert</servlet-class>
      </servlet>
      <servlet-mapping>
        <servlet-name>DeleDervert</servlet-name>
        <url-pattern>/delete</url-pattern>
      </servlet-mapping>
      <servlet-mapping>
        <servlet-name>SaveServert</servlet-name>
        <url-pattern>/servlet/SaveServert</url-pattern>
      </servlet-mapping>
      

  10.   


    他的名字就是form1,不是这的错误。 没这么用过。
      

  11.   

      <input   name= "delete "   type= "button "   class= "btn "   id= "btn "   value= "删除 "  />  <type="submit">button怎么提交?
      

  12.   

    如果不考虑贴出来哪些代码中,莫名其妙的空格
    那就可能是两种情况:
    1、<script></script>包含在 form 里面,取不到 form1
    2、<input name="save"...>中的 name 和 script 里的方法重名了
    <script type="text/javascript">
    function dele(){
    document.form1.action = "servlet/DeleServert";
    document.form1.submit();
    }function save(){
    document.form1.action = "servlet/SaveServert";
    document.form1.submit();
    }
    </script><form action="" method="post" style="width:800px" name="form1">
    <input type="button" class="btn" value="删除" onclick="dele()" />
    <input type="button" class="btn" value="保存" onclick="save()" />
    </form>
      

  13.   

    解决了。给form属性加上一个id= "form1" 
      

  14.   

    给form属性加上一个id= "form1" 
    上面那个问你解决了么。 少了个字。 var mainForm = document.getElementById("form1");
    mainForm.action = "servlet/SaveServert";
    mainForm.submit(); 
      

  15.   

    楼主。我发现一个问题哦。   你的button 的 id 属性重名了哦。 不知道这样影响么。但是这样写是不对的。   id是唯一的。
      

  16.   

    谢谢大家,问题解决了!
    有以下原因:
    (1)save()的问题。save有可能是js的关键字吧,把他换了解决了一部分问题。
    (2)input控件的name属性值不能和方法名相同。
    <input   name= "save" type= "button" class= "btn" id= "btn" value= "保存" onClick= "save();" /> ,这两个不能相同!我就改了这两个地方,现在可以了!
    不知道我说的对不对,大家可以试验下!
      

  17.   

    难道楼主在之前没有加id吗?用的是name应该是也可以的呀? 持续观望中~~
      

  18.   

    原因:你的相对路径写的不对。
    web.xml配置,对servlet路径映射是
    <servlet-name>SaveServert</servlet-name>
      <url-pattern>/servlet/SaveServert</url-pattern>这个路径是相对于你的web应用根目录来着。
    所以,要结合你的jsp相对根目录的路径是什么
    如:你有2个jsp,都要请求你的servlet:
    test
        WEB-INF
        a.jsp
        jsp/b.jsp那么,a.jsp就可以直接写 action = servlet/SaveServert
         b.jsp就不能了,要这样写:action = ../servlet/SaveServert依此类推