<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。求大神解救

解决方案 »

  1.   

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

  2.   

    var uname=document.getElementsByName("uName")[0].value;getElementsByName()方法返回的是一组对象的数组。
      

  3.   

    把name换成id
    <input type="hidden" id="uName" value="张三">
    var uname=document.getElementById("uName").value;
     alert(uname);
    你在试试