Подтвердить что ты не робот

JQuery "Не удается прочитать свойство defaultView 'из undefined"

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

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

$.ajax({
    url: "ajax/save_text.php", //Relative?!?
    //PHP скрипт
    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, кто знает причину?

4b9b3361

Ответ 1

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

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

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

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