ich die folgende Ko-Validierung Plugin bin mit: https://github.com/Knockout-Contrib/Knockout-ValidationKnockout Validierung: wie die Felder auf die Schaltfläche klicken, um zu validieren, nicht auf Eingabeänderung
Ich möchte, dass meine Felder validieren, wenn ich auf die Schaltfläche „Senden“, nicht jedes Mal, wenn ich den Wert des Inputs ändere. Wie kann ich das machen?
Javascript:
ko.validation.init({
insertMessages:false,
messagesOnModified:false,
decorateElement: true,
errorElementClass: 'wrong-field'
}, true);
var viewModel = {
firstName: ko.observable().extend({minLength: 2, maxLength: 10}),
lastName: ko.observable().extend({required: true}),
age: ko.observable().extend({min: 1, max: 100}),
submit: function() {
if (viewModel.errors().length === 0) {
alert('Thank you.');
}
else {
alert('Please check your submission.');
viewModel.errors.showAllMessages();
}
},
};
viewModel.errors = ko.validation.group(viewModel);
ko.applyBindings(viewModel);
HTML:
<fieldset>
<div class="row" data-bind="validationElement: firstName">
<label>First name:</label>
<input type="text" data-bind="textInput: firstName"/>
</div>
<div class="row" data-bind="validationElement: lastName">
<label>Last name:</label>
<input data-bind="value: lastName"/>
</div>
<div class="row">
<div class="row">
<label>Age:</label>
<input data-bind="value: age" required="required"/>
</div>
</div>
</fieldset>
<fieldset>
<button type="button" data-bind='click: submit'>Submit</button>
</fieldset>
Das ist mein jsfiddle: http://jsfiddle.net/xristo91/KHFn8/6464/
Ihre jsfiddle wie angegeben zu funktionieren scheint undertsand wird - ich glaube, Sie nur vermisse einige 'required: true' – Carsten
Leider ist das nicht genug :(Ich möchte meine Validierungen machen und die Fehlerklasse bei submit click, nicht bei live change. –
na dann verschiebe einfach die Logik in den Click-Handler- funktionieren und tun es manuell – Carsten