我有一个JavaScript代码来验证我的联系表并执行POST to PHP脚本,问题是该脚本会触发IF语句并在我的validateForm函数的响应为false时进行发布。
如果validateForm()返回false,则它仍在执行POST操作
这是带有功能结果的控制台打印
我的JS代码:
Reducer
答案 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=="")
请勿使用逗号(,)进行分隔。