jQuery "Не удается прочитать свойство 'defaultView' из неопределенного" ошибка - PullRequest
22 голосов
/ 14 октября 2010

Я использую jQuery для отправки поля формы в файл PHP, который просто возвращает 1/0 в зависимости от того, сработало оно или нет ...

Извлечение кода:

$.ajax({
    url: "ajax/save_text.php", //Relative?!?
    //PHP Script
    type: "POST",
    //Use post
    data: 'test=' + $(this).val(),
    datatype: 'text',
    //Pass value       
    cache: false,
    //Do not cache the page
    success: function(html) {
        if (html == 1) {
            $(this).hide().siblings('span').html($(this).value).show();
                    alert("awesome!");
        } else alert('It didn\'t work!');
    },
    //Error
    error: function() {
        alert("Another type of error");
    }
});

Однако каждый раз, когда это успешно (html == 1), консоль выдает ошибку «Uncaught TypeError: Невозможно прочитать свойство defaultView 'undefined", и предупреждение никогда не происходит ...?

Google не делаетКажется, у меня много информации об этой ошибке и jQuery, кто знает причину?

1 Ответ

35 голосов
/ 14 октября 2010

Это потому, что this - это не то, с чем вы имели дело раньше, а теперь объект ajax jQuery, добавьте context параметр $.ajax(), например:

$.ajax({
  context: this,
  url: "ajax/save_text.php",
  ...

Таким образом this внутри ваших обратных вызовов относится к тому же this, что и при вызове $.ajax().В качестве альтернативы просто удерживайте ссылку на this в отдельной переменной.

Также вам нужно настроить $(this).value, вы, вероятно, имели в виду this.value или $(this).val().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...