Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/462.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果文本框为';它在Javascript中为空_Javascript_Html_Textbox - Fatal编程技术网

如果文本框为';它在Javascript中为空

如果文本框为';它在Javascript中为空,javascript,html,textbox,Javascript,Html,Textbox,我写了一个简单的html文件,带有一个文本框和提交按钮,它生成和文档。我想让它生成一个响应,如果框为空,则输入内容。文本框的id是chatinput,因此我在开头有以下代码 var chatinput_box=document.getElementById('chatinput'); var chatinput=chatinput_box.value; 然后a有一个条件,虽然我不能让它正常工作;我试过了 if(chatinput==""){} if(chatin

我写了一个简单的html文件,带有一个文本框和提交按钮,它生成和文档。我想让它生成一个响应,如果框为空,则输入内容。文本框的id是chatinput,因此我在开头有以下代码

    var chatinput_box=document.getElementById('chatinput');
    var chatinput=chatinput_box.value;
然后a有一个条件,虽然我不能让它正常工作;我试过了

    if(chatinput==""){}
    if(chatinput.length=0){}
    if(chatinput=null){}
还有一些,但没有一个工作正常。有人有其他想法吗?

应该是这样的:

var chatinput = document.getElementById("chatinput").value;
if (chatinput == "" || chatinput.length == 0 || chatinput == null)
{
    // Invalid... Box is empty
}
或人手不足:

if (!document.getElementById("chatinput").value)
{
    // Invalid... Box is empty
}

=
分配一个值,而
=
检查值是否相等。

只是提供一个替代方案,而不是试图窃取雷声

创建一个
isEmpty
函数以在各种项目上重用

function isEmpty(val){
    return ((val !== '') && (val !== undefined) && (val.length > 0) && (val !== null));
}
然后,您可以将其应用于所需的任何元素:

if(!isEmpty(chatinput)){
    // hooray its got a value!
}

不完全是原创的,这是从PHP偷来的概念,但它很方便。因为使用赋值运算符:
if(chatinput.length=0){}
if(chatinput=null){}
第一个应该可以工作。你的HTML是什么?因为空字符串是错误的,即使是
if(chatinput)
也应该可以工作。你能展示一些你的标记吗?因为你的代码似乎没有任何问题。。。(除了上面提到的赋值运算符)显示#chatInput的HTML如果您试图教授比较运算符和赋值运算符之间的区别,您应该真正使用严格的比较运算符。如果(chatinput),这真的可以简化为
,它甚至可以被推荐为imho.@Houssni和good您注意到使用插值来获得正确的逻辑^I喜欢速记版本,但有任何缺点吗?它真的和第一个一样吗?@Crismogram空值总是被错误计算,所以你可以毫无问题地使用速记版本。我喜欢它,因为它是一个可重用的、简单的函数。我没有想到这一点,这是一个好主意。这将有助于使代码变得更短,并且在将来更容易记忆。是的,没错。对于这样的东西,可重用性是王道这是一个开销,默认的文本输入值是falsy,当它是一个空字符串时,所有这些链式测试的结果与直接对
val
进行布尔测试的结果完全相同。一个与另一个有什么关系?确定您可以编写
var myVar=undefined | | null但是如果(myVar)
仍然是
false
。。。测试只需确保该值是真实的,这对于除
未定义
'
长度0
之外的所有内容都是正确的。也许我没有注意到,但OP只是想确保值不为空,而不是不为空(这将被简单的布尔测试所覆盖)。