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!

788voto

Nick Craver Punkte 609016

Fügen Sie diesen Code in eine separate Datei/Skript ein nach das Validierungs-Plugin, um die Meldungen außer Kraft zu setzen, nach Belieben bearbeiten :)

jQuery.extend(jQuery.validator.messages, {
    required: "This field is required.",
    remote: "Please fix this field.",
    email: "Please enter a valid email address.",
    url: "Please enter a valid URL.",
    date: "Please enter a valid date.",
    dateISO: "Please enter a valid date (ISO).",
    number: "Please enter a valid number.",
    digits: "Please enter only digits.",
    creditcard: "Please enter a valid credit card number.",
    equalTo: "Please enter the same value again.",
    accept: "Please enter a value with a valid extension.",
    maxlength: jQuery.validator.format("Please enter no more than {0} characters."),
    minlength: jQuery.validator.format("Please enter at least {0} characters."),
    rangelength: jQuery.validator.format("Please enter a value between {0} and {1} characters long."),
    range: jQuery.validator.format("Please enter a value between {0} and {1}."),
    max: jQuery.validator.format("Please enter a value less than or equal to {0}."),
    min: jQuery.validator.format("Please enter a value greater than or equal to {0}.")
});

259voto

Steven Punkte 3723

Sie können im Validierungsaufruf Ihre eigenen Nachrichten angeben. Ich habe diesen Code aus dem Anmeldeformular von Remember the Milk übernommen und abgekürzt, das in der Dokumentation des Validierungs-Plugins ( http://jquery.bassistance.de/validate/demo/milk/ ), können Sie ganz einfach Ihre eigenen Nachrichten eingeben:

var validator = $("#signupform").validate({
    rules: {
        firstname: "required",
        lastname: "required",
        username: {
            required: true,
            minlength: 2,
            remote: "users.php"
        }
    },
    messages: {
        firstname: "Enter your firstname",
        lastname: "Enter your lastname",
        username: {
            required: "Enter a username",
            minlength: jQuery.format("Enter at least {0} characters"),
            remote: jQuery.format("{0} is already in use")
        }
    }
});

Die vollständige API für validate(...) : http://jqueryvalidation.org/validate

103voto

Josh Punkte 7817

Das hat bei mir funktioniert:

$.validator.messages.required = 'required';

51voto

Mahmoud Fadel Punkte 481

Das hat bei mir funktioniert:

// Change default JQuery validation Messages.
$("#addnewcadidateform").validate({
        rules: {
            firstname: "required",
            lastname: "required",
            email: "required email",
        },
        messages: {
            firstname: "Enter your First Name",
            lastname: "Enter your Last Name",
            email: {
                required: "Enter your Email",
                email: "Please enter a valid email address.",
            }
        }
    })

43voto

user1207577 Punkte 689

Da wir bereits JQuery verwenden, können wir den Seitendesignern die Möglichkeit geben, benutzerdefinierte Meldungen in das Markup und nicht in den Code einzufügen:

<input ... data-msg-required="my message" ...

Oder eine allgemeinere Lösung mit einem einzigen kurzen data-msg-Attribut für alle Felder:

<form id="form1">
    <input type="text" id="firstName" name="firstName" 
        data-msg="Please enter your first name" />
    <br />
    <input type="text" id="lastName" name="lastName" 
        data-msg="Please enter your last name" />
    <br />
    <input type="submit" />
</form>

Und der Code enthält dann etwas wie dieses:

function getMsg(selector) {
    return $(selector).attr('data-msg');
}

$('#form1').validate({
    // ...
    messages: {
        firstName: getMsg('#firstName'),
        lastName: getMsg('#lastName')
    }
    // ...
});

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