Ich habe eine clientseitige Validierung auf die Felder in meinem Formular angewendet, damit sie nicht leer bleiben. Die Nachricht wird jedoch unterhalb der Eingabefelder angezeigt. Wie kann ich es schaffen, dass sie neben dem Feld auftauchen?Positionierung der Validierungsnachricht für das mvc-Formularfeld
Formularfeld:
@using (Html.BeginForm("SaveAccount", "RxCard", FormMethod.Post, new { id = "save", enctype = "multipart/form-data" }))
{
<label id="lblAccountName">Account Name</label>
@Html.TextBoxFor(model => model.Pharmacy.AccountName, new { @id = "txtAccountName", @Name = "txtAccountName", required = "required" })
...
}
JQuery:
$(document).ready(function() {
$('#save').validate({
onchange: function (element) {
this.element(element);
console.log('onchange fired');
},
onfocusout: function (element) {
this.element(element);
console.log('onfocusout fired');
}
});
});
Ergebnis:
Ihre Verwendung von HTML-5-Validierung, die Steuerung von Ihrem Browser ist. Verwenden Sie die integrierten Validierungsfunktionen von MVC (mit Validierungsattributen und '@ Html.ValidationMessageFor()'), um sowohl die Client- als auch die Serverseite zu validieren und Ihnen das Positionieren/Formatieren der Nachricht zu ermöglichen. Randnotiz: Versuchen Sie niemals, das 'name' Attribut mit' @Name = "txtAccountName" 'zu überschreiben - es garantiert, dass die Modellbindung fehlschlägt –
Welche CSS verwenden Sie für das Design? –
@StephenMuecke die Sache ist, dass ich Validierung auf einem Onchange-Ereignis auftreten muss. Deshalb verwende ich die Validierungsattribute in meinem Modell nicht. Gibt es eine Möglichkeit, die Validierungsnachricht so zu ändern, dass sie bei Änderung auftritt? – thatdude