前不久在做项目时遇见了一个BUG。说实话IE这BUG我百度出来08年就有了,竟然到现在都没改。。。。醉了!
<body>
<script language="javascript">
function changeValue()
{
var username = document.getElementById('username');
username.value = 'Whahaha';
}
</script>
<form action="IE_BUG2.html" method="get">
<p>name:<input type="text" name="username" /></p>
<p>name2:<input type="text" id="username" name="name" /></p>
<p><input type="button" value="改变" οnclick="changeValue();" /></p>
</form>
</body>
很简单的一段代码,看上去似乎没有任何错误。但是在IE下点击改变按钮后,被改变值的对象居然是第一个name属性为username的input对象,而不是第二个id属性为username的对象。难道IE会自动把没设过ID的标签自动设一个和name一样的ID?
不管怎么说,问题还是要解决,有2个方法:
方法一:尽量避免在页面中出现name与id属性相同的对象。
方法二:利用JavaScript的特点,重写document.getElementById!