今天写了一段JavaScript的代码让我很奇怪
<html>
<head>
<script language="javascript">
var userName = document.getElementById('username');
function foo(){
alert(userName.value);
return false;
}
</script>
</head>
<body>
<form action="a.php" method="POST" onsubmit="return foo();">
<input type="text" name='username' id='username' />
<input type="submit" value="提交">
</form>
</body>
</html>
点击提交时应该弹出userName的值,但这段代码弹的值却是null
查了半天谷歌终于找到了原因
"放在对应的id后面就可以了。虽然你的userName 是全局变量,但是如果你放在获取dom的前面的话,获得到的值就是null。"
恍然大悟,于是把代码修改了一下 将script代码放到了</body>下面,马上可以用了,ie,FireFox都没问题
<html>
<head>
</head>
<body>
<form action="a.php" method="POST" onsubmit="return foo();">
<input type="text" name='username' id='username' />
<input type="submit" value="提交">
</form>
</body>
<script language="javascript">
var userName = document.getElementById('username');
function foo(){
alert(userName.value);
return false;
}
</script>
</html>
那个人还有一个建议"但做法还是建议在执行操作时临时获得对象,如果放在body后面的话对资源是浪费的。"
这句话我还需要理解理解,呵呵,毕竟还是JavaScript的新手嘛
2008年7月24日 08:53
他的意思其实就是放在函数里面,这样就是他说的操作时临时获得对象。
2008年7月24日 23:17
哦!多谢指教!