我有一个viewmodel并且它有一个可观察的,并且我在其上应用了一些验证。
现在,当我使用自定义validationMessage
绑定时,为了显示错误,我在ko验证库中收到以下错误:
<script type="text/html" id="TEXTBOX_Template">
<input type="text" data-bind="value: question().s_answer" />
<span class="validationMessage"
data-bind="validationMessage: question().s_answer"></span>
</script>
我正在使用ko和ko-validation的最新版本。
我的设置如下:
ko.validation.init({ decorateInputElement: false,
messageTemplate: 'error_Template' });
ko.validation.makeBindingHandlerValidatable("selectedOptions");
错误模板(但在此示例中不需要,因为我想使用validationMessage
):
<script type="text/html" id="error_Template">
<!-- ko if: (field.isModified() && !field.isValid()) -->
<span class="validationMessage" data-bind="text: field.error"></span>
<!-- /ko -->
</script>
如果这适用于observable,那么它应该与observableArray一起使用,因为我有一个使用ko foreach的单选按钮列表,当有验证时,错误会显示在每个输入单选按钮之后。
任何建议都会有所帮助!
由于
答案 0 :(得分:5)
validationMessage绑定存在一些问题,因此我们需要将observable显式扩展为可验证的。
在validationMessage绑定处理程序下的knockout.validation.js文件中添加以下行:
obsv.extend({ validatable: true });
希望这将在下一版本中修复,在ko.validation中添加了一个问题。或者至少这对我有用,如果我错了,请告诉我?或者有更好的方法吗?