Pit: Warum wird mein Dialog nicht geschlossen?

Hallo,

ich komme bis "Trallala", aber der Dialog wird nicht geschlossen. Drücke ich auf "Cancel", wird er jedoch mit derselben Anweisung geschlossen, wie er es auch im Success-Fall sollte.

Versteht das jemand?

Pit

$("#dialog-message").dialog({
    autoOpen: false,
    modal: true,
    resizable: false,
    show: 'blind',
    hide: 'blind',
    width: 600,
    buttons: {
        "Cancel": function() {
            $(this).dialog("close");
        },
        "Save": function() {
          $.ajax({
          type: "POST",
    	    url: "script.php",
		      data: $('#mform').serialize(),
		      error: function(XMLHttpRequest, textStatus, errorThrown)  {
          alert("Fehler beim Request aufgetreten: " + errorThrown)
          },
          success: function(data){                                                        
          alert('Trallala');
          $(this).dialog("close");
          }
		      });
        }
    }
});
  1. Hallo

    $("#dialog-message").dialog({
        /* … */
        buttons: {
            "Cancel": function() {
                $(this).dialog("close");
            },
            "Save": function() {
              $.ajax({
              type: "POST",
        	    url: "script.php",
    		      data: $('#mform').serialize(),
    		      error: function(XMLHttpRequest, textStatus, errorThrown)  {
              alert("Fehler beim Request aufgetreten: " + errorThrown)
              },
              success: function(data){                                                        
              alert('Trallala');
              $(this).dialog("close");
              }
    		      });
            }
        }
    });
    

    Kommt denn die Ausführung überhaupt bis an den Punkt success:? Wird irgendeiner der alert-Anweisungen ausgeführt?

    Tschö, Auge

    --
    Wenn man ausreichende Vorsichtsmaßnahmen trifft, muss man keine Vorsichtsmaßnahmen mehr treffen.
    Toller Dampf voraus von Terry Pratchett
    1. Hi Auge,

      Kommt denn die Ausführung überhaupt bis an den Punkt success:? Wird irgendeiner der alert-Anweisungen ausgeführt?

      Jaja, sagte ich ja: Trallala wird ausgegeben.

      Pit

  2. Tach!

    Versteht das jemand?

    this ist nicht das was du erwartest, sondern zeigt für den Callback auf irgendwas aus dem Ajax-Umfeld. Bevor du das Ajax ausführst, solltest du dir das this in einer Variable merken und diese dann verwenden.

    dedlfix.

    1. Tach!

      Versteht das jemand?

      this ist nicht das was du erwartest, sondern zeigt für den Callback auf irgendwas aus dem Ajax-Umfeld. Bevor du das Ajax ausführst, solltest du dir das this in einer Variable merken und diese dann verwenden.

      Hi dedlfix,

      klasse, dank Dir! Genau das war es.

      Pit

    2. Tach!

      Achja, und alert() ist auch kein Debugging sondern eine Krücke. Nutze die in den Browsern eingebauten Entwicklertools. Damit kannst du sowohl einfach in der Konsole Fehlermeldungen sehen als auch schrittweise durchlaufen, und hättest bemerkt, dass auch die nachfolgende Anweisung ausgeführt wird. Und du könntest dir auch den Inhalt von this mit einfachem Mausdraufhalten anzeigen lassen.

      dedlfix.

      1. Achja, und alert() ist auch kein Debugging sondern eine Krücke. Nutze die in den Browsern eingebauten Entwicklertools.

        Hab vergessen, wie das im FF aufgerufen wird. War das nicht früher mal str-umsch + J oder so? Ich mach halt wenig in JS (merkt man wohl auch...)

        Pit

        1. Tach!

          Achja, und alert() ist auch kein Debugging sondern eine Krücke. Nutze die in den Browsern eingebauten Entwicklertools.

          Hab vergessen, wie das im FF aufgerufen wird.

          Rechtsklick irgendwo und "Inspect Element". Oder F12 passt eigentlich auch in jedem Browser.

          dedlfix.

          1. Oder F12 passt eigentlich auch in jedem Browser.

            Genau... Flugzeugmodus bei mir 😉 Aber rechtsklick und dann über das Kontextmenü geht natürlich.

            Dank Dir, Pit

            1. Hallo Pit,

              Oder F12 passt eigentlich auch in jedem Browser.

              Genau... Flugzeugmodus bei mir 😉

              Man sollte seinen eigenen Laptop natürlich schon kennen. Dann brauchst du eben [Fn][F12].

              Bis demnächst
              Matthias

              --
              Rosen sind rot.
              1. Hi Matthias,

                Genau... Flugzeugmodus bei mir 😉

                Man sollte seinen eigenen Laptop natürlich schon kennen. Dann brauchst du eben [Fn][F12].

                Genau das meinte mein Mädel auch eben zu mir 😉

                Pit