【问题标题】:Javascript document.getElementById("id").value returning null instead of empty string when the element is an empty text box当元素是空文本框时,Javascript document.getElementById("id").value 返回 null 而不是空字符串
【发布时间】:2011-06-27 10:26:33
【问题描述】:

我有一个文本框元素,我尝试使用document.getElementById("id-name").value 访问其值。我发现调用返回的是 null 而不是空字符串。返回值的数据类型仍然是字符串。 null 是字符串值吗?

<input type="text" value="" id="mytext"> 是我尝试使用 var mytextvalue = document.getElementById("mytext").value; 获取其值的文本框

【问题讨论】:

  • @BonyT, <input type="text" value="" id="mytext"> 是我尝试使用 var mytextvalue = document.getElementById("mytext").value; 获取其值的文本框
  • jsfiddle.net/UVdVe ???看不出问题!

标签: javascript string dom null


【解决方案1】:

发布您的 HTML 可能会有所帮助。相反,您可以先获取元素,然后检查它是否为空,然后询问其值,而不是直接询问值而不知道该元素在 HTML 上是否可见。

element1 = document.getElementById(id);

if(element1 != null)
{
    //code to set the value variable.
}

【讨论】:

  • 我试图访问其值为<input type="text" value="" id="mytext"> 的元素使用document.getElementById("mytext").value 返回一个空值而不是“”。该元素,因为它是一个文本框,所以非常明显。
【解决方案2】:

fyi,如果您在输入标签上使用 html type="number" 属性,可能会发生这种情况。输入一个非数字会在你的脚本知道发生了什么之前清除它。

【讨论】:

    【解决方案3】:

    为您的代码

    var mytextvalue = document.getElementById("mytext");
    

    mytextvalue 将包含 null 如果您在此代码之前有 document.write() 语句。所以删除document.write 语句,你应该在变量mytextvalue 中得到一个正确的文本对象。

    这是document.write更改文档引起的。

    【讨论】:

      【解决方案4】:

      请检查此fiddle,如果您收到空值警报,请告诉我。我已经在那里复制了您的代码并添加了一些警报。就像其他人一样,我也没有看到返回 null,我得到一个空字符串。你用的是什么浏览器?

      【讨论】:

        【解决方案5】:

        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 中获得所需的输出。

        【讨论】:

          【解决方案6】:

          我认为在执行 javascript 时,您尝试访问的文本框尚未加载到页面上。

          ie.,为了让 Javascript 能够从页面的 DOM 中读取文本框,文本框必须作为元素可用。如果在将文本框写入页面之前调用了 javascript,则文本框将不可见,因此返回 NULL。

          【讨论】:

            【解决方案7】:
            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" />
            

            【讨论】:

              【解决方案8】:

              您似乎在 HTML 标记中省略了 value 属性。

              将其添加为&lt;input value="" ... &gt;

              【讨论】:

              • 即使value="" null 是返回值而不是 ""
              • 浏览器?我刚刚签入了最后一个 Opera、Chrome、FF4、IE8 并得到了“”。
              【解决方案9】:

              如果您使用外部 js 文件,请在末尾添加 &lt;script src="fileName.js"&gt;&lt;/script&gt;,然后关闭 &lt;/html&gt; 标签。或者将&lt;script&gt;放在最后关闭html标签之前。

              【讨论】:

                猜你喜欢
                • 2020-12-13
                • 1970-01-01
                • 1970-01-01
                • 2011-08-04
                • 1970-01-01
                • 1970-01-01
                • 2021-03-09
                • 1970-01-01
                • 2013-01-19
                相关资源
                最近更新 更多