2010-09-08 1 views
0

У меня есть следующий фрагмент коды:функции обратного вызова пропуска по команде jQueries .getJSON

$('input#teamName').live('blur', function() { 
    var value = $(this).val(); 
    if (value) { 
    $.getJSON('api/event_company/'+value, function(data) { 
     console.log('why does this not want to work?'); 
    }); 
    } 
}); 

В основном все это делает запрашивают некоторые данные с сервера, когда форма поле изменяется. Моя проблема заключается в том, что ничто в функции обратного вызова не вызвано, хотя я вижу, что с помощью firebug он успешно отправил запрос на сервер и получил действительный ответ JSON.

Если я изменить getJSON параметры для:

$.getJSON('api/event_company/'+value, alert('Blah')); 

Тогда предупреждение всплывает, как ожидалось. Любые идеи, которые могут вызывать такое поведение?

+1

Не уверен в первом, но причина, по которой работает 'alert ('Blah')', заключается в том, что вы не передаете его как обратный вызов. Вы * вызываете * alert() и передаете его возвращаемое значение, которое является 'undefined'. – user113716

ответ

4

Если JSON недействителен, синтаксический анализ завершится с ошибкой, и обработчик не будет вызван. Из getJSON Документов

Важен: На JQuery 1.4, если файл JSON содержит синтаксическую ошибку, то запрос будет обычно не молча. По этой причине избегайте частого ручного редактирования данных JSON. JSON - это формат обмена данными с синтаксическими правилами, которые более строгие, чем те, которые обозначаются объектной литературой JavaScript. Например, все строки, представленные в JSON, независимо от того, являются ли они свойствами или значениями, должны быть заключены в двойные кавычки. Подробнее о формате JSON см. http://json.org/.

Посмотрите, может ли ваш JSON validates.

Ваш второй пример неправильный. Вместо этого должно быть,

$.getJSON('api/event_company/'+value, function() { 
    alert('Blah'); 
}); 
+0

Arg. Я забыл, что я выводил некоторые дополнительные данные, когда я отлаживал вещи раньше, поэтому я фактически не возвращал действительный JSON. Благодарю. – blcArmadillo

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