JQuery, если несколько объектов имеют одинаковое значение - PullRequest
1 голос
/ 03 октября 2011

У меня есть несколько объектов.Перед отправкой формы я хочу убедиться, что все значения объекта «в порядке».

$("#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 может равняться НИЧЕМУ, и все равно появляется предупреждение «Это будет отправлено в форме», и в окне предупреждения отображается, что значение (я) НЕ «в порядке».

Что я делаю не так?

Ответы [ 5 ]

4 голосов
/ 03 октября 2011

Это не сравнение того, что вы думаете, это сравнение.Когда вы читаете это вслух, это звучит правильно: «если логин и адрес электронной почты равны OK», но это не то, как работает &&.Вы хотите:

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

Код, который вы написали, на самом деле говорит: «Если идентификатор входа в систему вообще что-то и если электронная почта в порядке».

2 голосов
/ 03 октября 2011
$("#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!");
    }
});
1 голос
/ 03 октября 2011

Вы должны сделать:

("#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 значение отсутствует в этом списке)

  • ложь
  • 1011 * нуль *
  • неопределенный
  • Пустая строка ''
  • Число 0
  • Число NaN (да, «Не число» - это число, это специальное число)
0 голосов
/ 03 октября 2011

Попробуйте это

$("#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!");
0 голосов
/ 03 октября 2011

(myObj.login_id && myObj.email == "ok") будет иметь значение true, если myObj.email == "ok" и myObj.login_id имеют ненулевое значение. Вы не оцениваете содержимое login_id ни для чего, поэтому оно будет обрабатываться как логическое значение и преобразовываться в такое содержимое в соответствии с содержимым.

Вы должны изменить его на (myObj.login_id == "ok" && myObj.email == "ok").

...