InnerHTML没有为servlet带来价值

时间:2013-09-25 08:20:06

标签: java javascript html servlets

cell = this.getElementsByTagName("td")[3];
uname = cell.innerHTML;

我通过innerHTML获取特定单元格的值,并将该值传递给Servlet

xmlhttp.open("POST","UserServlet",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("uname="+uname);

在Servlet中

uname = request.getParameter("uname");
        out.print(uname);
        System.out.println(uname);

我在控制台中得到“未定义”....... 是否有任何方式获取值并将其传递给servlet 我试过.innerHTML,.innerText,.value什么都没有用,我在数组中试过......但是没有用......先帮助我谢谢......

1 个答案:

答案 0 :(得分:1)

请参阅https://stackoverflow.com/a/15312976/1031191。这意味着你的xmlhttp代码很好。在浏览器中尝试使用javascript控制台,验证uname是否为字符串并包含正确的数据。

接收“未定义”意味着uname的值在客户端正是“未定义”。请参阅getParameter的参考:http://docs.oracle.com/javaee/1.3/api/javax/servlet/ServletRequest.html。 它表示您必须接收String或null。 (所以在你的情况下,xmlhttp.send()的参数由于某种原因是“uname = undefined”。)

更新2:

可能你需要document.getElementsByTagName('td')[3]而不是“this” 但是,嘿,如果你还是使用jQuery,为什么不写$('td').get(3)而不是getElementsByTagName?

更新3:

我认为你的html中只有不到4个 td 元素。请注意,javascript数组的索引是0.如果您不小心尝试访问超出范围的数组中的索引,则会收到“undefined”。