1
  1. 想先检查一下,页面加载时文本框是否包含任何内容?
  2. 然后给它赋值。

    if (document.getElementById("txtBoxID").value == null) {
    document.getElementById("txtBoxID").value = "Some text here";
    }
    
  3. 但出现错误“JavaScript 运行时错误:无法设置未定义或空引用的属性‘值’”怎么办?

4

7 回答 7

0

为文本框值测试 null 是不安全的。您应该改用空字符串。我创建了一个 jsFiddle,它显示了这一点:

<input type="text" id="txtBx" />

document.getElementById("txtBx").value = null;
alert("test 1 textbox is null \n" +  (document.getElementById("txtBx").value == null));

alert("test 2 textbox is empty string \n" +  (document.getElementById("txtBx").value == ""));

http://jsfiddle.net/kZhHa/3/

(我正在使用 Chrome)

于 2013-06-28T07:23:55.940 回答
0

页面加载后,您是否在执行上面的代码?

window.onload = function() {
  if (document.getElementById("txtBoxID").value == null) {
    document.getElementById("txtBoxID").value = "Some text here";
  }
}

请注意,这window.onload不是检查页面是否已加载的最佳方法。这取决于浏览器的规格。请参阅 window.addEventListener 或 window.attachEvent 或 IE。

于 2013-06-28T07:16:29.470 回答
0

这是因为你的 DOM 还没有准备好,所以等到加载完成:

window.onload=function(){
  if (document.getElementById("txtBoxID").value == null) {
    document.getElementById("txtBoxID").value = "Some text here";
  }
};
于 2013-06-28T07:16:52.400 回答
0

您可能正在尝试在页面中定义之前访问该元素,因此您应该在window.load事件上执行该代码或在之前移动该代码</body>

作为替代方案,您可以使用placeholder许多现代浏览器支持的属性

<input type="text" id="txtBoxId" placeholder="Some text here" />

如果输入没有值,则将显示占位符值
(此行为的 polyfills 可用于旧版浏览器)

于 2013-06-28T07:18:14.273 回答
0

您正在尝试访问空(或未定义)对象上的属性“值”,这会导致异常,假设您的 ID 可能不是txtBoxID

于 2013-06-28T07:18:35.257 回答
0

请尝试以下代码,您需要在该行中首先将值设置为 null

Name: <input type="text" id="myText" value=''>

这是演示:

function func() {
  if (document.getElementById("myText").value == '') {
    document.getElementById("myText").value = "Some text here";
  } else {
    alert("not null");
  }
}
Name: <input type="text" id="myText" value="">

<p>Click the button to change the value of the text field.</p>
<input type="button" id="button" value="Click Me" onClick="func();" />

于 2017-12-05T22:06:24.803 回答
-1

如果您有可用的 JQuery,这是完成您所要求的另一种方式。在 document.ready 函数中,您可以使用文本框的 id 获取文本的值并将其包装在 JQuery 中。这将允许您使用 .val() 函数在文本框为空的情况下检查和替换文本框的值

$(document).ready(function () {         
    if($('#id-of-your-textbox').val() == ' ') 
    {
       $('#id-of-your-textbox').val('some text');
    }
});
于 2014-02-06T21:08:42.653 回答