2012-06-01 3 views
0

Я написал некоторое кодирование с использованием javaScript.JavaScript: неожиданно Ошибка данных

function showPopupSettings(userName) 
     { 
      var jsonData; 
      setLoading("Loading User Settings"); 
      jsonData = new function(){ 
        this.className = "User"; 
        this.methodName = "showPopupSettings"; 
        this.userName = userName ; 
      } 
       data = JSON.stringify(jsonData); 
       $.post('ajaxpage.php',{ submit: "commonAction",data:data }, 
            function(data) { 
             removeLoading(); 
             $("#dialog") 
              .dialog("destroy") 
              .html(data) 
              .show() 
              .dialog({ 
               modal: true, 
               title: "User Settings", 
               buttons: { 
                Cancel: function() { 
                 $(this).dialog('close'); 
                }, 

                Password: function() { 
                 showChangePasswordTable(); 
                }, 

                Save: function() { 
                 saveNewUserSettings(); 
                 $(this).dialog('close'); 
                } 
               } 
              }); 
            }); 
     } 

Используя JSLint для ошибки free.while я был проверить с JSLint покажет следующее сообщение об ошибке строка 10: Неожиданное данных

как исправить эту ошибку ...

ответ

1

Вы получаете эту ошибку на этой линии:

data = JSON.stringify(jsonData); 

Это вызвано предыдущей строке, которая должна заканчиваться точкой с запятой, но не:

jsonData = new function(){ 
    this.className = "User"; 
    this.methodName = "showPopupSettings"; 
    this.userName = userName ; 
}; //Semi-colon here! 

С вашим кодом связано множество других проблем. В приведенном выше фрагменте кода, вы не хотите new ключевое слово:

jsonData = function() { //No 'new'! 
    this.className = "User"; 
    this.methodName = "showPopupSettings"; 
    this.userName = userName ; 
}; 

На data = JSON.stringify(jsonData) линии вы использовали data без объявления его первым, так что это просачивается в глобальном масштабе. Используйте заявление var, чтобы объявить data, прежде чем использовать его.

Большинство других ошибок, возникающих при запуске кода через JSLint, связаны с пробелом, поэтому его можно игнорировать.

+0

также, jsonData может быть объявлен и сразу присвоен –

+0

@Just_Mad - он может, но тогда JSLint снова пожалуется и сообщит вам объединить объявление с предыдущим. –

Смежные вопросы