2016-08-24 1 views
0
$("#frmNewContracts").validate({ 

     errorClass : "state-error", 
     validClass : "state-success", 
     errorElement : "span", 

     rules: { 

      txtusername : { required : true, 
           rangelength : [5, 18], 
           remote  : { url : "./_aQ8/auxphp/ajxcontrol.php", type : "get" } 
          } 
     }, 

     messages: { 

      txtusername : { required : "User-name is required", 
           rangelength : "User-name must be between 5 - 18 characters", 
           remote  : $.validator.format("User-name : <strong>{0}</strong> is already taken please try another") 
          } 
     }, 
     errorLabelContainer: "#joinerrgroup", 
     wrapper: "li"    
}); 

Hallo, Da die Frage schlägt vor, zu aktualisieren, habe ich eine Form der Validierung mit jQ Validate den Code oben angegebenen Plugin ist ein Ausschnitt Ich habe isoliert und allein mit meinem HTML-Formular und das Problem versucht ist dasselbe.Wie jQuery Validate Nachricht dynamisch

Das Problem ist: Der Benutzername sollte dynamisch aktualisieren (oder so dachte ich), um die Benutzer eingegebenen Benutzernamen anzuzeigen, wenn es bereits in der DB-Tabelle - alles funktioniert in Ordnung, aber beim Testen und versuchen mehrere doppelte Benutzernamen absichtlich zu überprüfen die Funktionalität, die Nachricht wird korrekt angezeigt, aber der Benutzername zeigt weiterhin den eingegebenen ersten doppelten Benutzernamen an. Es wird nicht aktualisiert, um den doppelten Namen im Formularfeld Benutzername anzuzeigen. Ist das normales Verhalten ich muss ich etwas anderes tun ??

Antwort

0

Sie können den Benutzernamen mit jQuery abrufen und dann in der Formatmethode verwenden.

remote: function() { 
    return jQuery.format("User-name : <strong>{0}</strong> is already taken please try another", $("#username").val()); 
} 
+0

Vielen Dank für Ihre Antwort Aber jetzt funktioniert es nur die ersten zwei mal testen, aber wenn ein dritter doppelter Name eingegeben wird, zeigt es immer noch den zweiten doppelten Namen in der Nachricht. Versuchte es mehrmals und dasselbe Ergebnis. Also ein bisschen näher, aber nicht perfekt. Obwohl die Wahrscheinlichkeit, dass jemand 3 doppelte Namen eingeben wird, sehr niedrig ist, ist es immer noch ein lästiges Problem. –

+0

Sind Sie sicher, dass Ihre IDs eindeutig sind? –

+0

Ja, alle meine IDs sind eindeutig, aber ich denke, 'jQuery.validate' verwendet das Element ** name ** -Attribut - beide sind auch einzigartig. –

1

Sie brauchen nicht die messages Option für remote.

Wenn Sie wie in der Dokumentation eine JSON-codierte Zeichenfolge von Ihrem serverseitigen Code senden oder senden, schlägt die Validierung fehl, und diese Zeichenfolge wird zur Überprüfungsmeldung.

+0

Mein Skript ist nicht versagt, da, wenn ich einen eindeutigen Benutzernamen eingeben es funktioniert richtig und nach meiner Antwort unten zu 'Tsvetomir Nikolov' - wenn ich bekannte doppelte Namen zu Testzwecken gibt es identifiziert die ersten beiden korrekt dann die dritte Zeit zeigt es weiterhin den zweiten doppelten Namen und zeigt nicht mehr den aktuellen doppelten Namen –

+0

@FlimFlam eingegeben, aber anscheinend gibt es etwas sehr falsch mit Ihrer Methodik, da es immer beim dritten Versuch fehlschlägt. Meine Antwort zeigt Ihnen eine robustere und Standardmethode. – Sparky

+0

Ich kann nicht sehen, wo in den Dokumenten Sie Ihre Informationen erhalten haben - die Dokumente zeigen eine Technik, um auf das Ergebnis der Rückgabe zuzugreifen. Die Tatsache, dass die Dokumentation die Nachricht und 'format()' nicht anzeigt, bedeutet nicht, dass sie nicht verwendet werden kann. Die spärlichen Beispiele in den offiziellen Dokumenten (nur zwei vollständige Beispiele) werden in verschiedenen SO-Threads ständig negativ kommentiert. Die Ergebnisse, die ich bekomme, verweisen anderswo auf ein Problem. –