jQuery如果多个对象的值相同

时间:2011-10-03 16:04:33

标签: javascript jquery if-statement equals

我有多个对象。在提交表单之前,我想检查以确保所有对象值都“正常”。

$("#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可以等于ANYTHING,它仍会弹出“This that submit the form”警告,并在警告框中显示值不是“ok”。

我做错了什么?

5 个答案:

答案 0 :(得分:4)

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

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

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

答案 1 :(得分:2)

$("#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!");
    }
});

答案 2 :(得分:1)

你应该这样做:

("#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是否解析为真(每次myObj.login_id值都不在此列表中时会发生这种情况)

  • 未定义
  • 空字符串''
  • 数字0
  • 数字NaN(是的,'非数字'是数字,是特殊数字)

答案 3 :(得分:0)

如果(myObj.login_id && myObj.email == "ok")myObj.email == "ok"具有非零值,

myObj.login_id将评估为true。您没有将login_id的内容评估为任何内容,因此它将作为布尔值处理并根据内容转换为此类。

您应该将其更改为(myObj.login_id == "ok" && myObj.email == "ok")

答案 4 :(得分:0)

试试这个

$("#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!");