我有一个onclick函数,在这个函数中我想为textarea中显示一些元素的方式创建一个条件。在函数中添加了这个:
bPlace = bookForm.txtPlace.value;
if (bPlace="null") {
bPlace="!."
}
bookForm.myText.value = bPlace
根据这个条件,当myForm中的txtPlace中的值不为null时,它应该显示用户放入的任何内容。但是当我测试它时,当我输入内容而不显示时,它仍然显示((! ))在textarea。
我应该说我用了#34; Undefined"而不是Null,仍然发生了同样的事情
你能告诉我我做错了什么吗?
答案 0 :(得分:3)
问题是你使用赋值运算符而不是比较运算符
语句bPlace="null"
会将字符串null
分配给bPlace
并返回它,这是一个truthy值,因此if块将始终执行。
bPlace = bookForm.txtPlace.value;
if (bPlace == "null") {
bPlace = "!."
}
bookForm.myText.value = bPlace
但由于bPlace
是一个输入值,我认为你要做的是如果输入是空白你想要设置一个默认值,那么你可以检查
bPlace = bookForm.txtPlace.value;
if (!bPlace) {
bPlace = "!."
}
bookForm.myText.value = bPlace
演示:Fiddle
可以进一步缩短
bookForm.myText.value = bookForm.txtPlace.value || '!.';
演示:Fiddle