我想使用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

09-20 06:52