我有多个对象。在提交表单之前,我想检查以确保所有对象值都“正常”。
$("#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_id
或myObj.email
可以等于ANYTHING,它仍会弹出“This that submit the form”警告,并在警告框中显示值不是“ok”。
我做错了什么?
答案 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
值都不在此列表中时会发生这种情况)
答案 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!");