取消验证,选择绑定,不添加erroelement .css

Knockout validation with select binding not add ErrorElement.css

本文关键字:添加 erroelement css 绑定 验证 选择 取消      更新时间:2023-09-26

我正在与knockout一起工作,并希望用户在html选择标记中选择一个项目。默认选择空值

<select required>
            <option value="">--Select something</option>
            <option value="True">True</option>
            <option value="False">False</option>

和viewModel包含

self.sampleBooleanValue.extend({required : true});

我希望下面的绑定会有帮助

<select data-bind="value: sampleBooleanValue" required>
 ....
</select>

验证工作,但没有添加css类的选择标签。有人能告诉我为什么不行吗?注:它与其他输入标签一起工作。

我在一个更复杂的模型上遇到了同样的情况,其中没有应用错误类,在这种情况下,我创建了一个selectedItemNotCaption验证器,并且在required: true没有工作的地方工作(我相信这可能与我的标记上的错误有关,我没有关闭,但这确实可以让我进一步调查)。

尝试下面的自定义验证器,在这里使用

model = function () {
var self = this;
self.optionsAvailable = ['one', 'two'];
self.selectedOptionWithRequired = ko.observable().extend({
    required: true
});
self.selectedOption = ko.observable().extend({
    selectedItemNotCaption: true
});
self.submit = function () {
    console.log("checking for errors...");
    self.errors.showAllMessages();
};
self.errors = ko.validation.group(self);
};
ko.validation.configure({
insertMessages: false,
decorateElement: true,
errorElementClass: 'error'
});
ko.validation.rules['selectedItemNotCaption'] = {
validator: function (val) {
    console.log("in validator..." + val);
    return (typeof val != "undefined");
},
message: 'Please select an option'
};
ko.validation.registerExtenders();
ko.applyBindings(new model());