JavaScript if语句忽略条件

时间:2018-10-25 15:07:39

标签: javascript jquery ajax if-statement materialize

我有一个JavaScript代码来验证我的联系表并执行POST to PHP脚本,问题是该脚本会触发IF语句并在我的validateForm函数的响应为false时进行发布。

如果validateForm()返回false,则它仍在执行POST操作

这是带有功能结果的控制台打印

Result

我的JS代码:

Reducer

2 个答案:

答案 0 :(得分:2)

您的布尔逻辑是错误的。

相反,您可以使用 !value ,如果 true 为空或为空字符串,则会生成value,然后使用 OR 都使用||

这基于强制转换为布尔值的类型,有关更多信息,请参见例如this MDN page

示例:

function validateForm(v1, v2, v3) {
  var name = v1;
  var surname = v2;
  var subject = v3;

  if (!name || !surname || !subject)
    return false;
  else
    return true;
}

console.log(validateForm(null, null, null));
console.log(validateForm(null, "", "Test"));
console.log(validateForm("John", "Smith", "Test"));

答案 1 :(得分:0)

您需要更改else if条件。 将条件写为:

else if (name==null || name=="" || surname==null || surname=="" || subject==null || subject=="" || mail==null || mail=="" || phone==null || phone=="" || details==null || details=="")

请勿使用逗号(,)进行分隔。