我正在嘗試使用Knockout創建複選框列表,並要求至少使用Knockout驗證檢查一個複選框。敲除驗證複選框列表必需驗證消息
我遇到的問題是所需的驗證消息出現多次,每個選項一次,如果沒有選中複選框。我該如何解決這個問題?
工作示例:http://jsfiddle.net/aaronhoffman/BtK3t/
的HTML
<script id="koValidationCustomMessageTemplate" type="text/html">
<em class="text-danger" data-bind="validationMessage: field"></em>
</script>
<div class="col-sm-5" data-bind="foreach: TheCheckboxListOptions">
<div class="checkbox">
<label>
<input type="checkbox" data-bind="value: $data, checked: $root.TheCheckboxListSelectedValues" /><span data-bind="text: $data"></span>
</label>
</div>
</div>
和JavaScript
ko.validation.configure({
registerExtenders: true,
messagesOnModified: true,
insertMessages: true,
parseInputAttributes: true,
messageTemplate: "koValidationCustomMessageTemplate"
});
var TheViewModel = {
TheCheckboxListOptions: [
"Option 1",
"Option 2",
"Option 3",
"Option 4"
],
TheCheckboxListSelectedValues: ko.observableArray().extend({
required: { message: "At least one option is required." }
}),
};
ko.applyBindings(TheViewModel);
能更改視圖模式,包括返回的選定個數的真大於1並寫入針對該而不是整個陣列的驗證所計算的布爾屬性? – arb
謝謝,我今天正在使用類似的解決方案,我只是在尋找更好的解決方案。 –