397 Stimmen

jQuery-Validierung: Standard-Fehlermeldung ändern

Gibt es eine einfache Möglichkeit, die Standardfehlerwerte in der jQuery-Validierungs-Plugin ?

Ich möchte nur die Fehlermeldungen neu zu schreiben, um mehr persönliche zu meinem app--Ich habe eine Menge von Feldern, so dass ich nicht die Nachricht individuell für Feld x... Ich weiß, ich kann das tun!

24voto

Ganske Punkte 368

Eine andere Möglichkeit besteht darin, eine Schleife über die Felder zu ziehen und die gleiche Fehlermeldung zu jedem Feld hinzuzufügen.

$('.required').each(function(index) {
  $(this).rules("add", {
    messages: {
      required: "Custom error message."
   }
  });
});

8voto

jitter Punkte 52721

Anstatt den Quellcode des Plugins zu ändern, können Sie eine zusätzliche js-Datei im Format derjenigen im Lokalisierungsordner der Downloads einfügen und diese nach dem Laden der validation.js einfügen

jQuery.extend(jQuery.validator.messages, {
    required: ...,
    maxlength: jQuery.validator.format(...),
    ...
});

5voto

Krolock Punkte 59

@Josh: Sie können Ihre Lösung mit übersetzten Nachrichten aus Ihrem Ressourcenpaket erweitern

<script type="text/javascript">
    $.validator.messages.number = '@Html.Raw(@Resources.General.ErrorMessageNotANumber)';
</script>

Wenn Sie diesen Codeteil in Ihre _Layout.cshtml (MVC) einfügen, ist er für alle Ihre Ansichten verfügbar

4voto

Stephen Sprinkle Punkte 1015

Die neueste Version hat einige nette Inline-Funktionen, die Sie nutzen können.

Wenn es sich um ein einfaches Eingabefeld handelt, können Sie das Attribut data-validation-error-msg etwa so.

data-validation-error-msg="Invalid Regex"

Wenn Sie etwas Schwereres benötigen, können Sie die Dinge vollständig anpassen, indem Sie eine Variable mit allen Werten verwenden, die an die Validierungsfunktion übergeben wird. Unter diesem Link finden Sie alle Details -- https://github.com/victorjonsson/jQuery-Form-Validator#fully-customizable

4voto

sanjeev Punkte 4027

Ich hätte nie gedacht, dass dies so einfach sein würde, ich habe an einem Projekt gearbeitet, das eine solche Validierung vorsieht.

Die nachstehende Antwort ist eine große Hilfe für alle, die die Validierungsmeldung ohne großen Aufwand ändern möchten.

Die folgenden Ansätze verwenden den "Platzhalternamen" anstelle von "Dieses Feld".

Sie können Dinge leicht ändern

   // Jquery Validation   
   $('.js-validation').each(function(){

       //Validation Error Messages 

       var validationObjectArray = [];

       var validationMessages = {};

       $(this).find('input,select').each(function(){  // add more type hear

          var singleElementMessages = {};

          var fieldName = $(this).attr('name');

          if(!fieldName){  //field Name is not defined continue ;
              return true;
          }

          // If attr data-error-field-name is given give it a priority , and then to placeholder and lastly a simple text

          var fieldPlaceholderName = $(this).data('error-field-name') || $(this).attr('placeholder') || "This Field";

          if( $( this ).prop( 'required' )){

              singleElementMessages['required'] = $(this).data('error-required-message') || $(this).data('error-message')  || fieldPlaceholderName + " is required";

          }

          if( $( this ).attr( 'type' ) == 'email' ){

              singleElementMessages['email'] = $(this).data('error-email-message') || $(this).data('error-message')  || "Enter valid email in "+fieldPlaceholderName;

          }       

          validationMessages[fieldName] = singleElementMessages;

       });

       $(this).validate({
          errorClass   : "error-message",
          errorElement : "div",
          messages     : validationMessages  
       });  
   });

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X