检查HTML输入元素是否为空或用户是否输入了值

时间:2012-01-10 12:39:43

标签: javascript html dom

此处与this问题相关。我可以检查DOM中的元素是否有值?我试图将其置于'if'语句中,并且不确定我的方法是否正确。这是:

if (document.getElementById('customx')){
    //do something
}

或者它应该是:

if (document.getElementById('customx') == ""){
    //do something
}

编辑:我的意思是,customx是一个文本输入框。如何检查此字段是否未输入文本。

5 个答案:

答案 0 :(得分:20)

getElementById方法返回一个可用于与元素交互的Element对象。如果未找到该元素,则返回null。对于input元素,对象的value属性包含value属性中的字符串。

通过使用&&运算符短路,并且null和空字符串在布尔上下文中被视为“falsey”的事实,我们可以组合对元素存在和存在的检查价值数据如下:

var myInput = document.getElementById("customx");
if (myInput && myInput.value) {
  alert("My input has a value!");
}

答案 1 :(得分:3)

如果在DOM中找不到该元素,

getElementById将返回false。

var el = document.getElementById("customx");
if (el !== null && el.value === "")
{
  //The element was found and the value is empty.
}

答案 2 :(得分:2)

var input = document.getElementById("customx");

if (input && input.value) {
    alert(1);
}
else {
    alert (0);
}

答案 3 :(得分:0)

你的第一个基本上是正确的。这个,仅供参考,这很糟糕。它在DOM节点和字符串之间进行相等性检查:

if (document.getElementById('customx') == ""){

DOM节点实际上是他们自己的JavaScript对象类型。因此,这种比较根本不会起作用,因为它在两种截然不同的数据类型上进行了相等比较。

答案 4 :(得分:0)

你想:

if (document.getElementById('customx').value === ""){
    //do something
}

value属性将为您提供一个字符串值,您需要将其与空字符串进行比较。