首页 > 解决方案 > 用于验证输入文本字段的单个 JavaScript 函数

问题描述

我正在尝试编写一个函数,该函数可以在将数据提交给 Php(通过 Ajax)进行处理之前检查输入 [text] 是否为空...此函数返回 true 或 false 并显示错误消息,如果输入字段为空(由另一个函数处理)。该函数按预期工作,但是当涉及两个字段时,if 语句会中断。这是代码:

const email = document.getElementById('username');
const password = document.getElementById('password');

if(verifyInput(email) && verifyInput(password)) {
    console.log('Ready');
}

因此,如果我的电子邮件为空,则下一个函数调用 verifyInput(password) 永远不会被执行。

现在,我通过使用乘法运算找到了一种解决方法:

if(verifyInput(email) * verifyInput(password)) {
      console.log('Ready');
}

我想知道是否有更好的方法来解决这个问题。

干杯。

标签: javascriptvalidation

解决方案


你可以尝试这样的事情:

if([email, password].map(verifyInput).every(Boolean)) {
  console.log('Ready');
}

首先将要验证的值放在一个数组中,然后verifyFunction在它们上映射。这会产生一个布尔数组。然后打电话every(Boolean)检查它们是否都是真的。


推荐阅读