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, кто знает причину?
Ответы
Ответ 1
Это потому, что this
не то, с чем вы имели дело раньше, теперь это объект ajax
jQuery, добавьте параметр context
$.ajax()
:
$.ajax({
context: this,
url: "ajax/save_text.php",
...
Этот способ this
внутри ваших обратных вызовов относится к тому же this
, что и при вызове $.ajax()
. В качестве альтернативы просто держите ссылку на this
в отдельной переменной.
Кроме того, вам нужно настроить $(this).value
, вы, вероятно, имели в виду this.value
или $(this).val()
.