【问题标题】:How do I check if each of 3 variables are the empty string?如何检查 3 个变量中的每一个是否都是空字符串?
【发布时间】:2019-10-30 00:25:47
【问题描述】:

我有 3 个带文本的输入字段。我想使用带有逻辑运算符的 if 语句来检查任何输入字段是否为空白,但我不能对 3 个变量使用 or(||)。

逻辑运算符的正确使用方法是什么?

let name = $("#name").val();
let email = $("#email).val();
let color = $("#color).val();

if(name == '' && ( email == '' || color == '') {
  console.log("please complete form");
 }
else {
//submit data
}

如果我将 name 字段留空,代码将按需要工作,但由于 name 为 true,if 语句接受它。如何使 if 语句检查任何输入字段是否为空白?

【问题讨论】:

  • 你可能不需要 JS。只需将这些字段设为required 即可。
  • 你也试过了:if(name == '' || email == '' || color == '')
  • 您的代码是“如果名称为空白且电子邮件或颜色为空白”。如果其中任何一个为空白,则不是。
  • 为什么说不能对三个变量使用OR运算符?

标签: javascript if-statement logical-operators


【解决方案1】:

每个都使用||

if(name === '' || email === '' || color === '') {

您不需要 () 分组,因为操作顺序无关紧要 - 您只想查看 任何 测试是否成功。

请注意,严格相等比较 (===) 几乎总是比抽象相等比较 (==) 更可取。

因为.val() 总是返回一个字符串,并且您想检查空字符串,如果您愿意,您可以检查该值是否为真:

if(!name || !email || !color) {

【讨论】:

  • 这真的很有帮助!谢谢。
【解决方案2】:

空字符串被认为是“假的”,这意味着在使用逻辑运算符时它被解释为false。将这些知识与!(非)运算符结合使用,我们可以做到这一点:

if(!name || !email || !color) {
  console.log("please complete form");
}

这种情况,用简单的英语来说,意思是“如果不是姓名、不是电子邮件或不是颜色”

【讨论】:

    【解决方案3】:

    您有语法错误(忘记了if 语句中的括号)。

    let name = $("#name").val();
    let email = $("#email).val();
    let color = $("#color).val();
    
    if(name == '' && ( email == '' || color == '')) {
      console.log("please complete form");
     }
    else {
    //submit data
    }
    

    【讨论】:

      猜你喜欢
      • 2012-04-13
      • 1970-01-01
      • 1970-01-01
      • 2015-01-31
      • 2010-10-13
      • 2022-03-31
      • 2012-09-28
      相关资源
      最近更新 更多