ボタンのクリックではなく、入力変化のフィールドを検証するために、私は、次のノックアウトの検証プラグインを使用しています入力の値を変更するたびにではありません。どうやってやるの?ノックアウト検証:私は、「送信」ボタンをクリックしたときに、私のフィールドを検証したい<a href="https://github.com/Knockout-Contrib/Knockout-Validation" rel="nofollow">https://github.com/Knockout-Contrib/Knockout-Validation</a></p> <p>、:どのように
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>
は、これが私のjsfiddleです:まあhttp://jsfiddle.net/xristo91/KHFn8/6464/
それをundertsandなると思うconstructors..soと私のクロージャを作成するために使用しています - 私はあなたを考えます – Carsten
残念ながら、これは十分ではありません:(私は私の検証を行い、ライブの変更ではなく、サブミットクリック時にエラークラスをバインドしたいと考えています。 –
ちょうどclick-handler-それは手動で行います – Carsten