我有一个文本框元素,我尝试使用document.getElementById("id-name").value
访问其值。我发现调用返回null而不是空字符串。返回值的数据类型仍为字符串。 null是字符串值吗?
<input type="text" value="" id="mytext">
是我尝试使用var mytextvalue = document.getElementById("mytext").value;
答案 0 :(得分:7)
发布HTML可能会有所帮助。相反,您可以先获取元素,然后检查它是否为null,然后询问其值,而不是直接询问值,而不知道该元素是否在HTML上可见。
element1 = document.getElementById(id);
if(element1 != null)
{
//code to set the value variable.
}
答案 1 :(得分:4)
fyi,如果您在输入标记上使用html type =“number”属性,则会发生这种情况。输入非数字将在脚本知道发生了什么之前清除它。
答案 2 :(得分:2)
代码
var mytextvalue = document.getElementById("mytext");
如果您在此代码之前有mytextvalue
语句, null
将包含document.write()
。因此,删除document.write
语句,您应该在变量mytextvalue
中获得正确的文本对象。
这是由document.write
更改文档造成的。
答案 3 :(得分:1)
请检查此fiddle,如果您收到空值警报,请告知我们。我在那里复制了你的代码并添加了几个警报。就像其他人一样,我也没有看到返回null,我得到一个空字符串。您使用的是哪种浏览器?
答案 4 :(得分:1)
This demo在Chrome 14,FF3和FF5(使用Firebug)中正确返回给我:
var mytextvalue = document.getElementById("mytext").value;
console.log(mytextvalue == ''); // true
console.log(mytextvalue == null); // false
并将console.log
更改为alert
,我仍然可以在IE6中获得所需的输出。
答案 5 :(得分:1)
我认为您尝试访问的文本框在您的javascript执行时尚未加载到页面上。
即,为了使Javascript能够从页面的DOM中读取文本框,文本框必须作为元素可用。如果在将文本框写入页面之前调用javascript,则文本框将不可见,因此返回NULL。
答案 6 :(得分:1)
try this...
<script type="text/javascript">
function test(){
var av=document.getElementById("mytext").value;
alert(av);
}
</script>
<input type="text" value="" id="mytext">
<input type="button" onclick="test()" value="go" />
答案 7 :(得分:0)
您似乎在HTML标记中省略了value属性。
将其添加为<input value="" ... >
。
答案 8 :(得分:0)
如果您使用外部 js 文件,请在关闭 <script src="fileName.js"></script>
标记之前在末尾添加 </html>
。或在关闭 html 标签之前将 <script>
放在最后。