function check(qid)
{
    document.charset="GBK";
    var sel = 0;
    var zongpeirm=0;
    var num=0;
    var j=0;//计算被选中的个数    for (var i = 0; i < document.getElementsByName("zongname").length; i++)
   {
    if(document.getElementsByName("zongname")[i].checked)
     {
    j++;
       sel = document.getElementsByName("zongname")[i].value;
         num=i+1;
         break;
      }
   }
 
   if(j<1)
   {
    alert("请选择总承包类型");
    return false;
   }   var mytable2=document.getElementById("mytable");
   
   var type=mytable2.rows[num].cells[1].innerHTML;//得到总承包类型
   var per =document.getElementById("se"+(num-1)); //得到总承包等级
   
   
   document.all.listform.action="zongjob.do?act=addZongJob&qid="+qid+"&type="+type+"&per="+per.value;
   document.all.listform.method="post";
   document.all.listform.submit();
提交到后台java后我必须要在转一次编码
我已经设置了过滤器了  为什么用post提交后还是要编码的  我的编码格式是gbk的
String type=new String((request.getParameter("type")).getBytes("ISO-8859-1"),"GBK");//java后台的编码

解决方案 »

  1.   

      document.all.listform.action="zongjob.do?act=addZongJob&qid="+qid+"&type="+type+"&per="+per.value;这种是Url重写, 要用get方法提价.
      

  2.   

    表单的提交方式是POST,这是没有错误的。
    因为你设置了表单的action属性为 zongjob.do?act=addZongJob&qid="+qid+"&type="+type+"&per="+per.value
    同时会以get方式传送这些参数。如果确实要以post方式发送数据,应该修改为。
    <form>
      <input type=hidden name=act/>
    </form><script>
    function check(qid) {
        ...
        document.all.listform.method="post";
        document.all.listform.act.value = "addZongJob";
        document.all.listform.submit();
        ...
    }
    </script>
      

  3.   

    字符串使用hidden标签,所有的东西都放在一个form中,这样才会以post方式获取所有的数据,url后面的字符只能用get方法获取
      

  4.   

    我那是不是要动态创建一个hidden标签呀?  你可以详细的告诉我下 怎么做呢  我javascript不怎样呀
      

  5.   

    var mytable2 = document.getElementById("mytable");   
    var type = mytable2.rows[num].cells[1].innerHTML;//得到总承包类型 
    var per = document.getElementById("se"+(num-1)); //得到总承包等级 document.getElementByName("act").value = mytable2 ;
    document.getElementByName("qid").value = type ;
    document.getElementByName("per").value = per ;<input type="hidden" name="act">
    <input type="hidden" name="qid">
    <input type="hidden" name="per">就这样写.
      

  6.   

    该一下: var mytable2 = document.getElementById("mytable");  
    var type = mytable2.rows[num].cells[1].innerHTML;//得到总承包类型 
    var per = document.getElementById("se"+(num-1)); //得到总承包等级 document.getElementByName("act").value = mytable2.value ; 
    document.getElementByName("qid").value = type.value ; 
    document.getElementByName("per").value = per.value ; <input type="hidden" name="act"> 
    <input type="hidden" name="qid"> 
    <input type="hidden" name="per">然后在servlet中用 request.getParameter("act"); 这样获取值.
      

  7.   

     改一下:
    var mytable2 = document.getElementById("mytable");  
    var type = mytable2.rows[num].cells[1].innerHTML;//得到总承包类型 
    var per = document.getElementById("se"+(num-1)); //得到总承包等级 document.getElementByName("qid").value = qid ; 
    document.getElementByName("per").value = per.value ; <input type="hidden" name="act" value="addZongJob"> 
    <input type="hidden" name="qid"> 
    <input type="hidden" name="per"> 然后在servlet中用 request.getParameter("act"); 这样获取值.