Ich habe bereits einen Formular-Validator in JS erstellt, von dem ein Teil unten angezeigt wird. Ich brauche nur Hilfe beim Anzeigen eines Fehlers und Scrollen zum Feld.Wie zeige ich einen Fehler in einem Feld für einen benutzerdefinierten Formularvalidierer an?
Okay, so dass jeder <input>
werden Attribute haben die Validierung Angabe die sie benötigen, zB:
<input data-mandatory="yes" data-validation="phone" data-max-digits="10">
Es Attribute zum Zeitpunkt der Formularübermittlung analysiert werden, und wenn ich auf eine errornous Feld kommen muss ich Scrollen Sie zu diesem Feld und zeigen Sie einen Fehler in Englisch an (mehrsprachig wird nicht benötigt).
var $form = $('#main-form');
$form.submit(function(event) {
event.preventDefault();
// per field
$form.find("input,textarea").each(function(f, field){
// read metadata
var type = $(field).attr("type");
var mandatory = $(field).data("mandatory");
var maxDigits = $(field).data("max-digits")) || 1000;
var validation = $(field).data("validation");
// read value
var value = $(field).value();
// process mandatory textfields
if (type == "text" || type == "number"){
var strValue = trim(value.toString());
if (mandatory && strValue.length == 0){
// HOW DO I SHOW AN ERROR AT THE CURRENT FIELD?
// and how do I scroll to it?
}
}
});
});
Edit: Ich habe eine nicht-triviale Menge an Code in node.js bekommt (5K LOC), die ich auf die Client-Seite bin Portierung, die von meiner Organisation erforderlich ist. Dieser Code wird oben nicht angezeigt.
Bearbeiten: Ich habe online für eine Stunde gesucht, aber die jQuery form validator Bibliotheken, die ich gesehen habe, funktionieren nicht die Art, die ich brauche. Ich habe bereits Formular-Hygiene & Validierungscode (der verschiedene Datentypen wie Telefonnummer, Postleitzahl, usw. unterstützt) in Node.js, die ich gerade auf die Clientseite portiere.
Was Sie fragen, ist nicht trivial. Daher die große Anzahl von jQuery-Plugins. Haben Sie sich den Code für sie angesehen? Es gibt einen Grund, dass sie eine anständige Menge an Code enthalten. – gforce301
@ gforce301 - Ja Ich habe eine nicht-triviale Menge an Code in node.js, die ich auf die Clientseite portiere. Dieser Code wird oben nicht angezeigt. –