使用HTML5属性进行Knockout验证

Hom*_*mer 2 knockout.js knockout-validation html5-validation

我可以将HTML5属性添加到元素中以进行连线验证吗?

如果是这样,它似乎对我不起作用.我需要做些额外的事吗?

http://jsfiddle.net/FcM2A/1/

vm required<input data-bind="value: num1, valueUpdate: 'afterkeydown'"/><br/>
HTML5 required<input required="true" data-bind="value: num2, valueUpdate: 'afterkeydown'" /><br/>
num1 isValid: <span data-bind="text: num1.isValid()"></span><br/>
num2 isValid: <span data-bind="text: num2.isValid()"></span>
<p data-bind="text:ko.toJSON($root)"></p>

ko.validation.init( {parseInputAttributes: true, writeInputAttributes: true} ); //enable HTML5 validation, write HTML5 validation attributes to the controls

var viewModel = {
    num1: ko.observable("1").extend({ required: true }),
    num2: ko.observable("2")
};
ko.applyBindings(viewModel);
Run Code Online (Sandbox Code Playgroud)

小智 6

在这里试试:http://jsfiddle.net/FcM2A/29/

你缺少:ko.validatedObservable(viewModel);

vm required<input data-bind="value: num1, valueUpdate: 'afterkeydown'"/><br/>
HTML5 required<input required="true" data-bind="value: num2, valueUpdate: 'afterkeydown'" /><br/>
num1 isValid: <span data-bind="text: num1.isValid()"></span><br/>
num2 isValid: <span data-bind="text: num2.isValid()"></span>
<p data-bind="text:ko.toJSON($root)"></p>

ko.validation.init( {parseInputAttributes: true, writeInputAttributes: true} ); //enable HTML5 validation, write HTML5 validation attributes to the controls

var viewModel = {
    num1: ko.observable("1").extend({ required: true }),
    num2: ko.observable("2")
};
ko.validatedObservable(viewModel);
ko.applyBindings(viewModel);
Run Code Online (Sandbox Code Playgroud)