我想通过使用javascript从隐藏的输入框中提取值,但有时我会收到“未定义”错误,有时无输出。 当我做的时候
alert(document.getElementById('hhh').value);
从printIt()函数内部得到输出。但我想不知何故它不会进入“var 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>
任何帮助将不胜感激。 感谢。
答案 0 :(得分:4)
您在document.getElementById('hhh')
存在之前致电hhh
。将其移动到您调用onload
的函数中。
答案 1 :(得分:3)
var a =document.getElementById('hhh').value;
这在文档加载之前运行,因此DOM中可能不存在底层元素。
您在document.getElementById('hhh')
存在之前致电hhh
。将其移动到您调用onload
的函数中。
var a;
function setup() {
a = document.getElementById('hhh').value;
startTime();
}
function startTime() {
document.getElementById('txt').innerHTML = a--;
setInterval(startTime, 600);
}
并在你的onload中运行setup();
。
答案 2 :(得分:2)
将其保留为“type = input”并添加css属性:display: none;
<input type="input" id="hhh" name="time" value="11" style="display: none;" />