2016-05-06 3 views
0

Ich stieß auf ein Problem mit Jquery validieren, wenn Sie sicherstellen, dass die E-Mail-Adresse eines Benutzers eindeutig ist. Ich versuche ein Updateformular für Benutzerdetails zu validieren. Jetzt sind die E-Mail und der Benutzername eindeutig. Wenn ich versuche, sie mit der Remote-Regel von Jquery validate zu validieren, sendet sie nur den eingegebenen Wert und der serverseitige Code teilt ihr mit, dass sie tatsächlich genommen wurde, obwohl sie vom selben Benutzer übernommen wurde . Also, meine Frage ist: gibt es eine Art, dies durch jQuery zu verhindern? Wie, vielleicht eine Art von Daten-Original-Wert-Attribut irgendeiner Art, ODER alternativ, gibt es eine Möglichkeit, es zu senden, zusätzliche Daten mit der Ajax-Anfrage, so dass ich es dann auf dem Server-Side-Code verwenden können, um zu überprüfen, ob Der Wert wird vom selben Benutzer genommen oder nicht?Validierung der Benutzerdetails Update-Seite - Remote-Validierung von Benutzername/E-Mail

Hier ist mein Code. Es ist ziemlich Standard:

$(".validateForm").validate({ 
    rules: 
    { 
     handle: 
     { 
      required: true, 
      remote:'/home/check' 
     } 
    }, 
    messages: 
    { 
     handle: 
     { 
      required: "Must include a handle", 
      remote:"This handle is already used up. Please, choose another one." 
     } 
    } 
}); 

Antwort

0

... ist es eine Art Weg, dies durch jquery Validate zu verhindern?

Nr

Es gibt keine Intelligenz der remote Methode ist ... es bestätigt einfach per was Sie es vom Server zu senden. Mit anderen Worten, Ihr serverseitiger Code unter /home/check muss herausfinden, ob das Feld gültig ist und die entsprechende Antwort zurücksenden.

Sollte Ihr serverseitiger Code nicht intelligent genug sein, um zu wissen, ob Sie mit einem neuen Benutzer oder einem vorhandenen Benutzer arbeiten, der bereits angemeldet ist und seinen Account bearbeitet? Wenn Sie sich ausschließlich auf den clientseitigen Code verlassen, können Sie dies möglicherweise verhindern, indem Sie JavaScript einfach deaktivieren oder ändern.

... oder alternativ ist es eine Möglichkeit, es zusätzliche Daten mit dem Ajax-Request

Ja zu senden zu bekommen.

Reading the docs:

... [für] Optionen vollständig die Anforderung anpassen, siehe jQuery.ajax Details

So wie pro Beispiel in der Dokumentation, könnten Sie die verwenden data Option $.ajax so ...

rules: { 
    handle: { 
     required: true, 
     remote: { 
      url: '/home/check', 
      data: { 
       more_stuff: function() { 
        return "some_value"; 
       } 
      } 
     } 
    } 
} 

Beachten Sie, dass der Wert des zu validierenden Felds weiterhin gesendet wird.


Nebenbei bemerkt: you may wish to reconsider using Allman code formatting for your JavaScript.

Verwandte Themen