日期:2014-05-16  浏览次数:20369 次

在动态增加隐藏域时,它的NAME熟悉能不能动态改变?
事情是这样的,
          var   str=detailTable.rows.length-1;
        oCell   =   oRow.insertCell();
oCell.innerHTML   =   " <input   type= 'hidden '   name=str   size= '1 '   readonly> ";

        我想当detailTable.rows.length在改变的时候,那么新添加的隐藏域的name也会发生改变,设想中它的name会是1,2,3,这样我可以在后台轻易的通过:request.getParameter( "i ")来获取这个值,但是,事实上,通过调试,发现,request.getParameter( "i ")的值是null,提示的错误是:
exception  

java.lang.NullPointerException
com.yjj.kms.servlet.AdddataServlet.doAddcab(AdddataServlet.java:47)
com.yjj.kms.servlet.AdddataServlet.doBusiness(AdddataServlet.java:37)
com.yjj.kms.tool.BaseServlet.doPost(BaseServlet.java:39)
javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

我想问题一定是出在我的哪几句JS上,我用alert(str);发现这个值是在改变的,那么:怎么把这个值给隐藏域的name呢?是不是可以实现?如果可以,请给个代码例子,或者帮我改一下,谢谢了!

------解决方案--------------------
oCell.innerHTML = " <input type= 'hidden ' name=str "+i+ " size= '1 ' readonly> ";
------解决方案--------------------
oCell.innerHTML = " <input type= 'hidden ' name=str size= '1 ' readonly> ";
不能这样写应这样子
oCell.innerHTML = " <input type= 'hidden ' name= "+str+ " size= '1 ' readonly> ";

------解决方案--------------------
var str=detailTable.rows.length-1;
oCell = oRow.insertCell();
oCell.innerHTML = " <input type= 'hidden ' name=str size= '1 ' readonly> ";
如你这样写第三句中的str就是str
应该改成这样:
oCell.innerHTML = " <input type= 'hidden ' name= "+str+ " size= '1 ' readonly> ";
这样写str才会被认为是字符串