关于Discuz!NT中$(id)两次输入的密码不一致的问题原因

在这次为客户修改论坛皮肤时,在头部加入了另一个登陆入口

后客户反应注册时,即使两次输入的密码一样也提示密码不一致的错误

后查找原因,发现论坛的JS方法$(id)返回的元素不是需要的,返回了我另行添加的登陆入口中的密码框元素,而不是注册表单内的密码框元素,两者的ID是不同的

$(id)是document.getElementById的快捷方式

但测试代码,感觉却是document.getElementById变成了document.getElementsByName方法了,而且是返回的第一个元素,即document.getElementByName

很奇怪的问题

 

<form id="form1" name="form1" method="post" action="">
  
<label>
    
<img type="text" name="password" id="password2" />
  
</label>
</form>
<form id="form1" name="form1" method="post" action="">
  
<label>
    
<img type="text" name="password" id="password" />
  </label>
</form>
<script language="javascript">
window.onload 
= function (){
        alert(document.getElementById(
"password").id);//提示的是password2
        alert(document.getElementsByName(
"password").length);//提示的是2
//        document.getElementById("selBox").value="dd";
    }
</script>

 

后来才发现为了兼容IE8Beta在页头中添加了<meta http-equiv="X-UA-Compatible" content="IE=7" />造成,去掉后恢复正常

posted @ 2010-03-17 11:53  追梦客2008  阅读(990)  评论(0编辑  收藏  举报