JQuery validate mit ajax

ihop

Mitglied
Hallo zusammen,

Ich bastel gerade an einer Form Validitierung mittels JQuery validate.
Da ich abfragen möchte ob der eingetragene Name auch in der DB existiert und gleichzeitig checken möchte ob er bereits einen anderen Termin eingetragen hat, habe ich auf die "remote" funktion zurück gegriffen.
Aber irgendwie will das ganze nicht so wie ich es will :/

Problem 1: Richtiger Name im Feld -> Trotzdem Fehler invalid
Problem 2: Die Felder haben die QJueryUI autocomplete hinterlegt wenn ich per Click den Namen eintrage, wird das Feld auch als invalid deklariert.

HTML:
HTML:
<form method="POST" action="" id="BesetzungUpdateValidation">
<input type="text" name="ref" id="ref" value="{$besetzung['r']}" class="form-control userBesetzung" {if $updatemeldung.r == "1"}id="inputError"{/if}>
<input type="hidden" name="gamedatum" id="gamedatum" value="{$gamedata[0][0]['datum']}" />
<input type="submit" id="send" name="Speichern" value="Speichern" class="btn btn-primary">
</form>

JS:
Javascript:
    $(document).ready(function() {
 

        // Autocomplete für Schiedsrichter
        var availableRefs = [
            {foreach key=cid item=cin from=$officallist}{ label:"{$cin.name}", category:"{$cin.rating}"},{/foreach}
        ];
 
        $( "#ref,#ump,#hl,#lj,#bj,#fj,#sj,#res1,#res2,#res3" ).catcomplete({
          source: availableRefs
        });  
     
        //Validitierung der Benutzer Daten
        $("#BesetzungUpdateValidation").validate({
            rules: {
                ref: {
                    remote: {
                        url: "ajax/besetzung.ajax.php",
                        type: "get",
                        data: {
                            name: function() {
                                return $( "#ref" ).val();
                            },
                            gamedatum: function() {
                                return $( "#gamedatum" ).val();
                            },
                        }
                    }
                },
            },
            messages: {
                ref: "Please enter your valid name",
            },
            onkeyup: function( element, event ) {
                if ( event.which === 9 && this.elementValue(element) === "" ) {
                    return;
                } else if ( element.name in this.submitted || element === this.lastElement ) {
                    this.element(element);
                }
     
                this.checkForm();
     
                if (this.valid()) { // checks form for validity
                    $('input#send').attr('class', 'btn btn-primary');        // enables button
                } else {
                    $('input#send').attr('class', 'btn btn-danger disabled');   // disables button
                }
            },
            onclick: function( element ) {
                // click on selects, radiobuttons and checkboxes
                if ( element.name in this.submitted ) {
                    this.element(element);
     
                // or option elements, check parent select in that case
                } else if ( element.parentNode.name in this.submitted ) {
                    this.element(element.parentNode);
                }
     
                this.checkForm();
     
                if (this.valid()) { // checks form for validity
                    $('input#send').attr('class', 'btn btn-primary');        // enables button
                } else {
                    $('input#send').attr('class', 'btn btn-danger disabled');   // disables button
                }
            }
        });       
    });

JSON String:
Optimal Fall:
Code:
{"valid":true,"user":true,"blockdate":true}

Name in der DB nicht gefunden:
Code:
{"valid":false,"user":false,"blockdate":true}

User hat bereits einen Termin:
Code:
{"valid":false,"user":true,"blockdate":false}


Hoffe Ihr kommt mir weiterhelfen.

Lg Stefan
 
Update:

Die Probleme von oben habe ich bereits gelöst -> komplizierter gedacht als es tatsächlich war :D

Nur jetzt habe ich das nächste Problem am Start :/

Wenn ich den Submit button Klicke validiert er, was ja soweit passt aber, wie sag ich dem Script das er das Form trotzdem schicken soll?

Lg Stefan
 
Zurück