测试null无效

时间:2015-06-25 03:22:42

标签: javascript jquery function if-statement

我有一个onclick函数,在这个函数中我想为textarea中显示一些元素的方式创建一个条件。在函数中添加了这个:

    bPlace = bookForm.txtPlace.value;
    if (bPlace="null") {
        bPlace="!."
    }

bookForm.myText.value = bPlace

根据这个条件,当myForm中的txtPlace中的值不为null时,它应该显示用户放入的任何内容。但是当我测试它时,当我输入内容而不显示时,它仍然显示((! ))在textarea。

我应该说我用了#34; Undefined"而不是Null,仍然发生了同样的事情

你能告诉我我做错了什么吗?

1 个答案:

答案 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