一尘不染

jQuery“无法读取未定义的属性'defaultView'”错误

ajax

我正在使用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)时,控制台都会引发错误“未捕获的TypeError:无法读取未定义的属性’defaultView’”,并且警报永远不会发生…?

Google似乎没有关于此错误和jQuery的大量信息,谁知道原因?


阅读 232

收藏
2020-07-26

共1个答案

一尘不染

这是因为this以前不是您要处理的内容,现在是ajaxjQuery对象,请添加如下所示的context选项$.ajax()

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

this回调中的这种方式与this调用时的方式相同$.ajax()。或者,仅保留对this单独变量中的引用。

另外,您需要调整$(this).value,可能是this.value$(this).val()

2020-07-26