如果文本框为';它在Javascript中为空
我写了一个简单的html文件,带有一个文本框和提交按钮,它生成和文档。我想让它生成一个响应,如果框为空,则输入内容。文本框的id是chatinput,因此我在开头有以下代码如果文本框为';它在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
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只是想确保值不为空,而不是不为空(这将被简单的布尔测试所覆盖)。