Knockout中的验证消息

时间:2013-11-05 15:33:12

标签: knockout.js

我正在尝试实施淘汰赛验证。对于这个例子,我有Vacancy类型的对象,其中包含observable属性。如果我留下空输入,除了在UI(jquery弹出窗口)中输入附近​​显示错误消息外,一切正常。我的下一步应该是什么?

JS

    ko.validation.configure({
                        registerExtenders: true,
                        messagesOnModified: true,
                        insertMessages: true,
                        parseInputAttributes: true,
                        messageTemplate: null
                    }

    var Vacancy = function() {
                    this.Header = ko.observable("").extend({ required: true });
    }

    function viewModel() {
         self.selectedVacancy = ko.observable(new Vacancy());

         self.action= function() {
                self.validationModel = ko.validatedObservable({
                        P1: self.selectedVacancy().Header
                });
                        if (self.validationModel.isValid()) {
                            alert('Do Action');
                        } else {
                            alert('Not Valid');
                        }
    }

UI

<label>Header: </label>
<input data-bind="value: Header"/>

1 个答案:

答案 0 :(得分:1)

Validated Observables有一个showAllMessages方法,可用于手动显示消息。而不是打开警报,或者除了打开警报之外,您可以像这样调用showAllMessages:

self.validationModel.errors.showAllMessages();

此外,请确保insertMessages配置选项设置为true,这是默认设置,但您可能在初始化时更改了