15

我想向视图中的select元素添加 CSS 类,我的视图模型有一个属性,我使用 Knockout-Validation 扩展了该属性:

self.selectedRootCause = ko.observable().extend({
    required: true
});

然后我select是这样的:

<form data-bind="submit: closeComplaint" method="post"> 
    <select data-bind="options: rootCauses, 
                            optionsText: 'RootCauseText', 
                            value: selectedRootCause, 
                            optionsCaption: 'Choose..',
                            validationOptions: { errorElementClass: 
                                                 'input-validation-error' }">
    </select>

    <input type="submit" value="Close Complaint" />
</form>

我的closeComplaint功能如下所示:

self.closeComplaint = function () {
    if (self.errors().length == 0) {
        $.ajax({
            url: '@Url.Action("CloseComplaint")',
            data: new DetailsComplaintAdmin(self.currentComplaint(),
                                        self.selectedRootCause().RootCauseId
                ),
            success: function (data) {
                console.log(data);
            }
        });
    }
}

只是为了完成,这是我的self.errors()功能:

self.errors = ko.validation.group(self);

问题是当我提交表单时,该类input-validation-error似乎没有添加到我的输入中?select有任何想法吗?

4

1 回答 1

22

签出此链接

它说您必须设置 decorateElementtrue将 CSS 类应用于输入标签。
因此,当我全局应用该参数时,它可以工作:

ko.validation.configure({ 
    decorateElement : true
});

签出这个 jsfiddle演示

注意:在 Knockout Validation 库的更新版本中,decorateElement配置选项已重命名为decorateInputElement详细信息

于 2012-08-17T14:44:39.923 回答