jQuery ajax Problem

Diskutiere jQuery ajax Problem im Programmierung Forum im Bereich Software Forum; Ich versuche jetzt schön seit mehreren Stunden ein Problem zu lösen, komme aber einfach nicht darauf, warum es nicht klappt. Wahrscheinlich habe...
nka

nka

Threadstarter
Mitglied seit
29.03.2010
Beiträge
699
Standort
Hamburg
Ich versuche jetzt schön seit mehreren Stunden ein Problem zu lösen, komme aber einfach nicht darauf, warum es nicht klappt. Wahrscheinlich habe ich irgendwas übersehen oder ich bin einfach mal wieder zu blöd.
Ich habe ein Formular, welches beim Submit per ajax überprüft wird. Wenn alles Valide ist, wird der Submit ausgeführt, wenn nicht dann nicht und es erscheint eine Fehlermeldung neben dem Button.
Hier nun der Code:
PHP:
    $("#add-album-form").submit(function() {
        validate = false;

        $.ajax({
          type: "GET",
          url: "includes/validate_name.php",
          data: { name: $('#input_album_name').val().trim() }
        }).done(function(data){
            if (data == 0 || $('#input_album_name').val().trim() == "") {
                if ($('#input_album_name').val().trim() == "") {
                    $('#info-validate-dialog').text("Das Album braucht einen Namen").show().fadeOut(1500);
                    validate = false;
                } else {
                    $('#info-validate-dialog').text("Der Name ist bereits vergeben").show().fadeOut(1500);
                    validate = false;
                }
            } else {
                validate = true;
            }
        });

        return validate;

    });
Das Problem ist jetzt, dass er immer false zurück gibt und das Formular auch nicht den Submit bekommt. (Schreibt man das so????) Das witzige ist, dass die Fehlermeldungen funktionieren. Das heißt, wenn man wirklich keinen Namen eingibt, dann kommt die Meldung, dass es einen Namen geben muss.
 
Zuletzt bearbeitet:
DerZong

DerZong

MODERATOR/FAQ-Team
Team
Mitglied seit
12.10.2004
Beiträge
4.677
Alter
41
1.
Schon mal überprüft, was FireBug (falls du's mit Firefox testest) zurückgibt?

2.
Ist zwar schon ein bisschen her, dass ich mit jQuery gearbeitet habe, aber eine einfache Kennwort-Überprüfung, die ich geschrieben hatte, sah damals folgendermaßen aus:
PHP:
function submitForm() {
 $.ajax
  (
   {
    type: "POST",
    url:  "checkpassword.php",
    data: "password=" + $("#password").val(),
    success: function (data)
     {
      $("#cv_content").empty().html(data);
     },
    error: function (xhr, ajaxOptions, thrownError)
     {
      $("#errorField").empty().html("Das eingegebene Kennwort war leider nicht richtig!");
     }
   }
  );
 return false;
};
Hierbei ging es nur darum, nach Eingabe des richtigen Kennwortes zusätzlichen Content anzuzeigen. Eingebunden wurde das Script über eine onclick-Routine eines einfachen Buttons. Denke aber schon, dass du dir das auf deine Anforderungen "hinbasteln" kannst.
 
nka

nka

Threadstarter
Mitglied seit
29.03.2010
Beiträge
699
Standort
Hamburg
Firebug meckert nicht.
Dein Code macht ja im Moment im Prinzip dasselbe wie meiner. Das Problem bei der onclick Routine ist, dass es nicht auslöst, wenn der Benutzer Enter drückt. Ich muss also der Funktion $("#add-album-form").submit(function() {}); entweder return false für das nicht absenden der Daten mitteilen oder eben true wenn er es darf. Das Funktioniert händisch auch, wenn ich return false; einsetzte, dann kann man das Formular nicht mit Submit abschicken, bei true dementsprechend schon. Ich denke, dass es irgendeinen Variablen Fehler gibt, weil ich die Variable validate in einer unter Funktion verändern. Könnte es daran liegen?
 
T

tobiasndw

Mitglied seit
31.01.2006
Beiträge
149
AJAX wird grundsätzlich "async" ausgeführt, d.h. in deiner Funktion "submitform" wird das Ajax ausgelöst und anschließend sofort "return validate" zurückgegeben. Die Variable "validate" ist natürlich immer false, weil eben nicht auf die Antwort vom Ajax gewartet wird.

Die Lösung: "async: false" als Option für dein Ajax.

$.ajax({
type: "GET",
async: "false",
url: "includes/validate_name.php",
.....
 
Thema:

jQuery ajax Problem

jQuery ajax Problem - Ähnliche Themen

  • GELÖST jQuery Funktion per href aufrufen

    GELÖST jQuery Funktion per href aufrufen: Hallo, ich habe ein Problem mit jQuery das mich fast in den Wahnsinn treibt. Hier aber erst mal der Code: <!DOCTYPE html PUBLIC "-//W3C//DTD...
  • Wiki - ajax

    Wiki - ajax: Weiterlesen...
  • Wiki - ajax

    Wiki - ajax: Weiterlesen...
  • Wiki - ajax

    Wiki - ajax: Weiterlesen...
  • Microsoft veröffentlicht Ajax-Tool

    Microsoft veröffentlicht Ajax-Tool: Microsoft hat ein bislang unter dem Codenamen Atlas entwickeltes Tool in der Version 1.0 (Final) freigegeben. Für den Entwurf von...
  • Ähnliche Themen

    Oben