我正在使用敲除验证来验证我的视图模型,并使用自定义模板在字段旁边放置确认或错误消息。问题是正在将确认消息添加到未标记为必需的字段。在模板中它检查isModified和isValid,但有没有办法检查该字段是否必需,所以我只能在必填字段上显示确认信息?
<script type="text/html" id="myCustomTemplate">
<span data-bind="if: field.isModified() && !field.isValid(),
attr: { title: field.error }"><i class="icon-exclamation-sign"></i></span>
<span data-bind="if: field.isModified() && field.isValid()"><i class="icon-ok green"></i></span>
</script>
答案 0 :(得分:1)
这个问题有多种解决方案:
调用ko.validation.group
所以不要写:
self.errors = ko.validation.group(self);
只列出要验证的属性:
self.errors = ko.validation.group([self.Value2]);
或者,您可以在自定义消息模板中添加其他检查,以查找field.rules
并检查其是否包含任何规则:
<script type="text/html" id="myCustomTemplate">
<span data-bind="if: field.rules().length > 0 && field.isModified() &&
!field.isValid(), attr: { title: field.error }">
<i class="icon-exclamation-sign"></i>
</span>
<span data-bind="if: field.rules().length > 0 && field.isModified() &&
field.isValid()">
<i class="icon-ok green"></i>
</span>
</script>
演示JSFiddle。