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

js获取页面input控件类型为hidden的值为undefined
<input type="hidden" name="uName" value="张三">
function doEdit(creatorName,templateId)
{

var uname=document.getElementsByName("uName").value;
alert(uname);
if(creatorName==uname){
window.location="editTemplate.jsp?templateId="+templateId+"";
}else{
alert("对不起,您没有权限编辑该模版");
}
}


这只是页面片段代码,其他的无关紧要。原来value不是张三,是一个${userName} 我把
<input type="hidden" name="uName" value="张三">改成<input type="text" name="uName" value="${userName}">
是确定有值的。但是在js函数里无论这个类型是text还是hidden。获取的都是undefined。求大神解救

------解决方案--------------------
注意这里有个s
这个的话,getElementsByName获取到的是一个数组,你应该这样使用:
var uNameVal=null;
var uName= document.getElementsByName("uName")
if(uName.length>=1)
{
uNameVal=uname[0].value;
}
...
最好能使用getElementById,使用id来获取对象,获取到的就是一个对象,而非对象数组。
------解决方案--------------------
var uname=document.getElementsByName("uName")[0].value;

getElementsByName()方法返回的是一组对象的数组。
------解决方案--------------------
把name换成id
<input type="hidden" id="uName" value="张三">
var uname=document.getElementById("uName").value;
 alert(uname);
你在试试