2015-03-22 3 views
-2

Это является продолжением вопросом http://goo.gl/pmwjCVJavascript манипуляция объекта

У меня есть яваскрипт функция Ajax, который возвращает JSON. Я хочу запускать различные js-события в зависимости от пары значений ключа JSON, но я не могу получить доступ к JSON по ключу. Поэтому вместо этого я превратил JSON в объект javascript и попытался использовать IF, но он не работает. В настоящее время я продолжаю получать окно ошибок, даже если JSON возвращает успех. У меня очень мало опыта работы с javascript, поэтому, пожалуйста, совет.

success: function (data) { 

    var json = data, 
     obj = JSON.parse(json); 


    if (obj.hasOwnProperty('success')) //if data = {"result":"success"} 
    { 
     $('div#loginResult').text("Login result: " + obj.result); 
     $('div#loginResult').addClass("error"); 
    } else // /if data = {"result":"error"} 
    { 
     $('form#loginForm').hide(); 
     $('div#loginResult').text("Login result: " + obj.result); 
     $('div#loginResult').addClass("success"); 

    } 
} 
+2

В '.hasOwnProperty()' функция проверяет собственности ** ** имена, а не значения свойств. Из комментария в вашем коде вам просто нужно 'if (obj.result ==" success ")' – Pointy

+0

Вау, теперь я чувствую себя глупо. Благодаря ! – slk

ответ

2

Я думаю, что ваш чек здесь не так, вы говорите, если ваш объект имеет свойство «успеха», но это значение не является собственностью. Попробуйте что-то вроде этого:

success: function (data) { 

     var json = data, 
      obj = JSON.parse(json); 


     if (obj.result === 'success') //if data = {"result":"success"} 
     { 
      $('div#loginResult').text("Login result: " + obj.result); 
      $('div#loginResult').addClass("error"); 
     } else // /if data = {"result":"error"} 
     { 
      $('form#loginForm').hide(); 
      $('div#loginResult').text("Login result: " + obj.result); 
      $('div#loginResult').addClass("success"); 

     } 
    } 

https://jsfiddle.net/ghkokgg7/

+0

Yup Мне нужно было использовать obj.result. Ваш код только что получил ошибку и успешные детали, смешанные. Я разместил правильный ниже. Благодаря ! – slk

0
success: function (data) { 

       var json = data, 
        obj = JSON.parse(json); 


       if (obj.result === 'error') //if data = {"result":"success"} 
       { 
        $('div#loginResult').text("Login result: " + obj.result); 
        $('div#loginResult').addClass("error"); 
       } else // /if data = {"result":"error"} 
       { 
        $('form#loginForm').hide(); 
        $('div#loginResult').text("Login result: " + obj.result); 
        $('div#loginResult').addClass("success"); 

       } 
      }