如果多个对象等于相同的值

jQuery if multiple objects equal same value

本文关键字:于相同 对象 如果      更新时间:2023-09-26

我有多个对象。在提交表单之前,我想检查确保所有的对象值都是"ok"。

$("#sub_button").click(function() {
    if (myObj.login_id && myObj.email == "ok")  {
        alert("This would submit the form. login ID obj is: "+myObj.login_id+" and email email obj is: "+myObj.email);
    } else {
        alert("the form is bad!");
    }
});

我试过两个==和三个===,它仍然不起作用。myObj.login_idmyObj.email可以等于任何值,它仍然会弹出"这将提交表单"的警告,并在警告框中显示值不是"ok"。

我做错了什么?

这不是你认为的比较。当你大声朗读时,这听起来是对的:"如果登录ID和电子邮件等于OK",但这不是&&的工作方式。你想要的:

if (myObj.login_id == "ok" && myObj.email == "ok") {
   ....
}

你写的代码实际上说"如果登录ID是任何东西,如果电子邮件是"ok"。

$("#sub_button").click(function() {
    if (myObj.login_id == "ok" && myObj.email == "ok")  {
        alert("This would submit the form. login ID obj is: "+myObj.login_id+" and email email obj is: "+myObj.email);
    } else {
        alert("the form is bad!");
    }
});

你应该这样做:

("#sub_button").click(function() {
    if (myObj.login_id === "ok" && myObj.email === "ok")  {
        alert("This would submit the form. login ID obj is: "+myObj.login_id+" and email email obj is: "+myObj.email);
else {
        alert("the form is bad!");

在您的代码中,您只需检查myObj.login_id解析为true(每次myObj.login_id值不在此列表中时都会发生)

  • 定义
  • 空字符串
  • 数字0
  • 数字NaN(是的,"不是数字"是一个数字,它是一个特殊的数字)

试试这个

$("#sub_button").click(function() {
    if (myObj.login_id == "ok" && myObj.email == "ok")  {
        alert("This would submit the form. login ID obj is: "+myObj.login_id+" and email email obj is: "+myObj.email);
    } else {
        alert("the form is bad!");
如果myObj.email == "ok"myObj.login_id的值不为零,则

(myObj.login_id && myObj.email == "ok")的值为true。您没有将login_id的内容计算为任何内容,因此它将作为布尔值处理,并根据内容转换为布尔值。

你应该把它改成(myObj.login_id == "ok" && myObj.email == "ok")