无法从javascript访问隐藏的输入框值

时间:2012-02-09 15:28:08

标签: javascript html

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

任何帮助将不胜感激。 感谢。

3 个答案:

答案 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;" />