我想使用javascript从隐藏的inputbox中提取一个值,但有时会出现“未定义”的错误,有时甚至没有输出。
当我做的时候
alert(document.getElementById('hhh').value);
从printIt()函数内部获取输出。但我认为它不会进入“a变量”,而且
var a =22;
如果我移除
var a =document.getElementById('hhh').value;
在下面的代码中。
<script type="text/javascript">
var a =document.getElementById('hhh').value;
function startTime()
{
document.getElementById('txt').innerHTML=a;
a=a-1;
t=setTimeout('startTime()',600);
}
</script>
<body onLoad="startTime()">
<form name="form1" id="form11" method="post" action="">
<input type="hidden" id="hhh" name="time" value="11" />
</form>
<div id="txt"></div>
</body>
任何帮助都将不胜感激。
谢谢。
最佳答案
var a =document.getElementById('hhh').value;
这在文档加载之前运行,因此底层元素可能不存在于DOM中。
在document.getElementById('hhh')
之前存在调用hhh
。将其移到您调用的函数中。
var a;
function setup() {
a = document.getElementById('hhh').value;
startTime();
}
function startTime() {
document.getElementById('txt').innerHTML = a--;
setInterval(startTime, 600);
}
在你的onload中运行
onload
。