在这次为客户修改论坛皮肤时,在头部加入了另一个登陆入口
后客户反应注册时,即使两次输入的密码一样也提示密码不一致的错误
后查找原因,发现论坛的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>
<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>
</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" />造成,去掉后恢复正常