2016-07-28 8 views
0

Ich würde verschiedene Fehlermeldungen für ein einzelnes Feld basierend auf Bedingungen wie unten wollen.jQuery Bedingte Fehlermeldungen für das gleiche Feld validieren

jQuery(document).ready(function() { 
    //... 


    ..// 

    $("#aID").validate({ 
      rules: { 
       reason: "required", 
       aic: "required" 
       aAmt:{ 
        required: function (element) {   
        var err; 
        var new_balance = Math.round(100*beg_balance)/100 - Math.abs(Math.round(100*adjustAmount)/100); 
      if ((parseInt(aAmount) >= parseInt(a_limit_amount))) { 
       err = "123";       
       return true; 
      } 
      else if (new_balance) 
      { 

       err = "321"; 
       return true; 
      } 
      return false; 
        } 
       } 
      } 
      }, 
      messages: { 
       reason:"Please select a reason code.", 
       aic: "Please select a credit AIC.", 
       pwdOverride: err 
      }, 

    }); 

Es gibt eine Option wie unten

messages: { 
    RoutingNumber: { 
    required:"Message1", 
    digits: "Message2", 
    rangelength: "Message 3" 
    } 
} 

Aber Mine hat keine es Validierungsmethoden von diesem Plugin gebaut. Irgendwelche Hilfe, wie man es erreicht?

Was ich bei der Validierung gebaut meine ist, wenn Sie meine anderen Schleife sehen für aAmt: rules, es passt nicht in jQuery Validate der Validierung gebaut wie zum Beispiel: List of built in validation methods

+0

* "Aber meine hat keine gebaut Validierung von jquery" * ~ Was bedeutet "meins" beziehen? Wenn Sie das jQuery Validate-Plugin nicht installieren, können Sie den obigen Code nicht verwenden. – Sparky

+0

@sparky Ich habe die Validierung aktualisiert, die ich durchführen möchte. – JNPW

+0

Was macht * "meins hat keine gebaut Validierung von jquery" * bedeuten ?? Haben Sie das [jQuery Validate Plugin] (https://jqueryvalidation.org) installiert? – Sparky

Antwort

4

Sie haben einige ernsthafte Syntax Probleme hier als in meinen Kommentaren unten angegeben.

$("#aID").validate({ 
    rules: { 
     reason: "required", 
     aic: "required" // <- MISSING a comma here 
     aAmt: { 
      required: function(element) { 
       var err; 
       var new_balance = Math.round(100 * beg_balance)/100 - Math.abs(Math.round(100 * adjustAmount)/100); 
       if ((parseInt(aAmount) >= parseInt(a_limit_amount))) { 
        err = "123"; 
        return true; 
       } else if (new_balance) { 
        err = "321"; 
        return true; 
       } 
       return false; 
       } // <- REMOVE extra brace 
      } 
     } 
    }, 
    messages: { 
     reason: "Please select a reason code.", 
     aic: "Please select a credit AIC.", 
     pwdOverride: err // <- no such field defined in 'rules' 
    } 
}); 
  1. Sie sind ein Komma direkt nach der aic Regel fehlt.

  2. Sie haben eine zusätzliche Klammer innerhalb Ihrer bedingten Funktion.

  3. Innerhalb messages beziehen Sie sich auf ein Feld mit dem Namen pwdOverride, aber es ist kein solches Feld innerhalb rules definiert. Wie können Sie eine Validierungsfehlermeldung für ein Feld definieren, das keine Validierungsregeln enthält?

  4. Ihre bedingte Funktion für benutzerdefinierte Nachrichten sollte im Objekt messages, nicht im Objekt rules enthalten sein. rules dient zum Definieren der Regeln und messages dient zum Definieren der Nachrichten.

Aktualisiert:

$("#aID").validate({ 
    rules: { 
     reason: "required", 
     aic: "required", 
     aAmt: "required" 
    }, 
    messages: { 
     reason: "Please select a reason code.", 
     aic: "Please select a credit AIC.", 
     aAmt: { 
      required: function(element) { 
       var err = "this field is required"; // default message 
       var new_balance = Math.round(100 * beg_balance)/100 - Math.abs(Math.round(100 * adjustAmount)/100); 
       if ((parseInt(aAmount) >= parseInt(a_limit_amount))) { 
        err = "123"; 
       } else if (new_balance) { 
        err = "321"; 
       } 
       return err; // <- display the custom message 
      } 
     } 
    } 
}); 

Seit Sie haben uns nicht den HTML-Code angezeigt Markup Ihrer Form, kann ich nur ein allgemeines Proof-of-Concept-Beispiel liefern: jsfiddle.net/3of700am/

ANMERKUNGEN:

  • Achten Sie auf Ihre JavaScript-Konsole, da Sie über viele dieser Syntaxfehler informiert werden.
  • Formatieren und beabsichtigen Sie den Code richtig zu formatieren, damit er leichter zu lesen und zu beheben ist. Einmal formatiert, sind zusätzliche/fehlende Klammern/Klammern leicht zu finden.
+0

Vielen Dank. Habe den Code im Nachrichtenbereich benutzt und es hat geholfen. Ich habe ein anderes Feld für das Passwort, das kein erforderliches Feld ist, aber außer dass die gleiche Bedingung wie oben gilt? Es funktioniert jedoch für die Bedingung, auch wenn ich in der letzten else Block-Aktion false zurückgibt (wird aufgerufen, wenn keine Fehlermeldung zurückgegeben wird) Seite Verwendet das gleiche Formular senden. Mein Code für pwd wurde aktualisiert. – JNPW

+0

@JNPW, bitte ersetzen Sie nicht den gesamten Inhalt Ihrer ursprünglichen Frage, nachdem sie beantwortet wurde. Es trennt die vorhandenen Antworten und hilft zukünftigen Lesern nicht. Wenn Sie eine neue Frage haben, schreiben Sie eine neue Frage. Vielen Dank. – Sparky

Verwandte Themen