2017-12-23 6 views
0

Ich benutze jquery validate.js für die Validierung eines Formulars. Ich möchte die Validierungsmeldungen als Toastr Pop-ups zeigen, habe ich versucht, die Toastr Funktion wie folgt hinzuzufügen:Jquery validate - zeige Nachrichten mit Toastr

.... 
messages: { 
    "email": { 
     required: function() { 
      toastr.warning("Warning") 
     }, 
     email: "Email is invalid" 
    } 
}, 
.... 

aber es hält das Popup aus irgendeinem Grund duplizieren - und statt eines Popup - es schafft 3. ... ich möchte auch Nachrichten um Doppelarbeit zu vermeiden - so, wenn es eine Fehlermeldung als nur einen Willen angezeigt - egal, wie oft der Benutzer einreichen ...

Fiddle

+0

Integration dieser Validierung Plugin mit einem anderen Plugin für Popup-Nachrichten ist keine triviale Aufgabe. Es hängt einzig und allein vom Umfang der in Toastr eingebauten Callback-Funktionen ab und erfordert dann mehr als nur eine Codezeile innerhalb des Objekts "messages". Zum Beispiel, werfen Sie einen Blick auf diese Antwort, um eine Vorstellung davon zu bekommen, wie es mit ToolTipster gemacht wurde: https://stackoverflow.com/a/14741689/594235 – Sparky

+0

Um die Frage schnell zu beantworten: Das ist, weil das 'messages' Objekt zum Setzen der Textinhalt einer benutzerdefinierten Nachricht Es ist nicht für das Aufrufen von Code gedacht, um etwas anderes zu tun. Wie in meinem ersten Kommentar erwähnt, müssen Sie dafür mehrere andere Callback-Funktionen nutzen. Es könnte hilfreich sein, wenn Sie in Ihrem Post mehr von dem relevanten Code gezeigt haben, anstatt sich auf jsFiddle zu verlassen. – Sparky

+0

@Sparky, danke, was ich in Geige gezeigt habe, ist ziemlich genau das, was ich bisher gemacht habe ... ich möchte überprüfen, ob es überhaupt möglich ist ... ich werde mehr Versuche machen und sie einmal posten Ich werde es schaffen. – RoyBarOn

Antwort

0

Verstanden ...

  <form id="formParams"> 
      <div class="form-group"> 
       <label for="exampleFormControlInput1">Email address</label> 
       <input type="email" class="form-control" name="email" placeholder="[email protected]"> 
      </div> 

      <div class="form-group"> 
       <label for="phone"> multiple select</label> 
       <input id="phone" class="form-control" type="tel" name="phone"> 
      </div> 
      <div class="form-group"> 
       <label for="exampleFormControlTextarea1">Example textarea</label> 
       <textarea class="form-control" name="textarea" rows="3"></textarea> 
      </div> 
      <button type="submit" class="btn btn-primary"> 
       Submit 
      </button> 
     </form> 

Js

$ (document) .ready (function() {

  $("#formParams").validate({ 

       rules: { 
        "email": { 
         required: true, 
        }, 
        "phone": { 
         required: true, 
        }, 

       }, 
       messages: { 
        "email": { 
         required: function() { 
          toastr.error('email field is required') 
         }, 
        }, 
        "phone": { 
         required: function() { 
          toastr.error('phone field is required') 
         }, 

        }, 

       }, 
       submitHandler: function (form) { // for demo 
        toastr.success('success') 
        return false; // for demo 
       } 
      }); 
     });