我想在单击按钮时呈现某些操作。条件是:(如果输入字段中存在值,则写入“值存在”。如果值不存在,则发出警报)。我尝试用 null 替换 undefined 。我还尝试替换运算符 === 和 ==。没有一个有效!请帮忙。<html><head></head><body><input id='typer' type='text'></input><button onclick='hey()'>click</button><p id='pw'></p><script>var pwpw = document.querySelector('#pw');function hey() { if (document.getElementById('typer').value !== undefined) { pw.innerHTML = 'value exists'; } else { alert('value does not exists'); }}</script></body></html>
2 回答
jeck猫
TA贡献1909条经验 获得超7个赞
null
、undefined
和空字符串 ( ""
) 都是 JavaScript 中的“假”值;这意味着如果将它们传递给!
运算符,结果将为true
。您可以在控制台中通过运行!("")
、!(null)
或 (for undefined
) 通过定义var x;
然后调用来测试这一点!x
。
更重要的是,if
语句实际上并不检查其条件是否等于true
,而是检查条件是否为“真”(即false
通过时计算为!
)。
因此,您需要做的就是将语句的条件设置if
为document.getElementById('typer').value
,因为只要元素的值不为 null、未定义或空字符串(或 false,这也是 falsey),则条件为 true 。
茅侃侃
TA贡献1842条经验 获得超21个赞
对于<input type="text">
,文档指出其属性的类型.value
是 a DOMString
。
DOMString
是一个 UTF-16 字符串。由于 JavaScript 已经使用此类字符串,DOMString
因此直接映射到String
.
这意味着.value
永远不会是null
或undefined
;有了这些知识,当您想知道某个值是否存在时,您可以做两件事:
用于
value.length
判断字符串是否为空在语句中使用
value
or!value
本身来if
分别确定它是否存在或为空(空字符串的计算结果为false
,而非空字符串的计算结果为true
)
- 2 回答
- 0 关注
- 88 浏览
添加回答
举报
0/150
提交
取消