1

我正在使用剔除验证来验证我的视图模型,并使用自定义模板在字段旁边放置确认或错误消息。问题是确认消息被添加到未标记为必需的字段中。在模板中,它检查 isModified 和 isValid 但有没有办法检查该字段是否为必填项,所以我只能显示必填字段的确认信息?

http://jsfiddle.net/uSs3R/

<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>
4

1 回答 1

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

于 2013-10-18T18:53:52.423 回答