可能重复:
Why does jQuery or a DOM method such as `getElementById` not find the element?
我有这个脚本:
<script>
var dataoriginale = document.getElementById("savedataoriginale").value;
</script>
和此文字字段:
<input name="savedataoriginale" id="savedataoriginale" type="text" value="testtest">
但是当我尝试打印javascript var
时<script>document.write(dataoriginale)</script>
我未定义。
为什么呢?我该如何解决这个问题?
答案 0 :(得分:3)
这是因为在从输入
获取值之前,您有2个冲突js会话这是工作选项
<input name="savedataoriginale" id="savedataoriginale" type="text" value="testtest">
<script>
var dataoriginale = document.getElementById("savedataoriginale").value;
document.write(dataoriginale);
</script>
答案 1 :(得分:2)
很可能是因为<script>
在<input>
之前执行。发生这种情况是因为document.getElementById("savedataoriginale").value
在未解析DOM时返回undefined
。
要解决此问题,请将<script>
标记放在<input>
之后,并确保在解析DOM之前它不会运行。您也可以像这样使用DOMContentLoaded事件:
document.addEventListener("DOMContentLoaded", function(){
var dataoriginale = document.getElementById("savedataoriginale").value;
alert( dataoriginale );
},false);
更多信息:
PS。您不需要在id
元素上同时拥有name
和<input>
属性。名称已弃用。身份证就足够了。