jQuery-Fehler “Kann Eigenschaft ‘defaultView’ von undefiniert nicht lesen”.

Lesezeit: 1 Minute

Benutzer-Avatar
Pez Cuckow

Ich verwende jQuery, um ein Formularfeld in eine PHP-Datei zu schreiben, die einfach 1/0 zurückgibt, je nachdem, ob es funktioniert hat oder nicht …

Auszug aus dem Code:

$.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");
    }
});

Aber jedes Mal, wenn es erfolgreich ist (html == 1), gibt die Konsole den Fehler aus

Nicht erfasster TypeError: Eigenschaft ‘defaultView’ von undefined kann nicht gelesen werden”

und die Warnung kommt nie…?

Google scheint nicht viele Informationen zu diesem Fehler und jQuery zu haben, wer kennt die Ursache?

Es ist, weil this Es ist nicht das, womit du vorher zu tun hattest, es ist jetzt das ajax jQuery-Objekt, fügen Sie die hinzu context Option von $.ajax() so was:

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

Diesen Weg this innerhalb Ihrer Rückrufe bezieht sich auf dasselbe this wie wenn du anrufst $.ajax(). Alternativ halten Sie einfach an einem Verweis auf fest this in einer separaten Variablen.

Außerdem müssen Sie sich anpassen $(this).valuemeintest du wahrscheinlich this.value oder $(this).val().

  • @Pez – überhaupt nicht albern, ich denke, es ist auch eher kontraintuitiv, dass dies nicht der Fall ist Ursprünglich Kontextverhalten.

    – Nick Craver

    14. Oktober 2010 um 18:24 Uhr

  • Ja, das hat mich auch gebissen, nach ein bisschen Refactoring. Danke für die Antwort. 🙂

    – Bombe

    21. Oktober 2010 um 18:18 Uhr

  • Stimmen Sie hier zu, entgegen der Intuition, ich bin auch gerade in die Falle getappt und benutze JavaScript seit 8 Jahren!

    – Mike Upjohn

    3. April 2017 um 13:58 Uhr

1098940cookie-checkjQuery-Fehler “Kann Eigenschaft ‘defaultView’ von undefiniert nicht lesen”.

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy