检查所有输入是不是为空

Posted

技术标签:

【中文标题】检查所有输入是不是为空【英文标题】:Check if all inputs are empty检查所有输入是否为空 【发布时间】:2015-01-11 22:45:58 【问题描述】:

我的页面上有多个输入,当任何一个被填满时,旁边会出现一个“信息 div”; 现在,如果手动清除所有输入(在 keyup 上),我需要隐藏那个“信息 div”。

如何检查(在 keyup 上)所有输入是否同时为空?

干杯

【问题讨论】:

向我们展示您是如何让 info div 出现的 【参考方案1】:

遍历所有输入,如果你找到一个非空的,你就知道它们并不都是空的。如果你完成你的循环却没有找到一个,那么它们都是都是空的。

function isEveryInputEmpty() 
    var allEmpty = true;

    $(':input').each(function() 
        if ($(this).val() !== '') 
            allEmpty = false;
            return false; // we've found a non-empty one, so stop iterating
        
    );

    return allEmpty;

您可能希望在比较之前“修剪”输入值(如果您想将仅包含空格的输入视为空)。您可能还希望更具体地了解您正在检查的输入。

【讨论】:

您可以缩短循环并在填写输入字段后立即返回,例如if ($(this).val() !== '') return false; @dsuess 已更新。谢谢。 (虽然你的例子还不够:我们不能在内部函数内部return false 外部函数!我们改为设置allEmpty = false,然后返回false 告诉$.each 停止迭代。)跨度> 像魅力一样工作。谢谢!【参考方案2】:

没有 jQuery 的简单解决方案 (ES6)

html

<div class="container">
  <input id="input1" />
  <input id="input2" />
  <input id="input3" />
</div>

JS

document.getElementById('btnCheckEmpty').addEventListener('click', () => 
        if (isEveryInputEmpty())
            alert('empty');
        else
            alert('not empty');
);


const isEveryInputEmpty = () => 
    var inputs = document.querySelectorAll('.container input');
    
    for (const input of inputs)
        if (input.value !== '') return false;
    
    return true;

Online Demo

【讨论】:

有没有办法在没有 jQuery 的情况下做到这一点? @RalphDavidAbernathy 好主意。我已经编辑了我的代码。

以上是关于检查所有输入是不是为空的主要内容,如果未能解决你的问题,请参考以下文章

如何检查数字输入是不是为空?

jQuery检查表单输入是不是为空,除了一个

Tkinter 检查输入框是不是为空

检查输入值是不是为空并显示警报

如何检查提交时输入字段是不是为空[重复]

如何在jquery中检查输入类型号是不是为空[重复]