使用knockout.js(和敲除验证)我有这个:
self.nickname = ko.observable("").extend({
required: true,
minLength: 3
});
和
<input type="text" data-bind="value: nickname" class="short" maxlength="30" />
<div class="formRow rowErrorMsg" data-bind="visible: nickname.isValid() == false"><span class="staticImages staticImagesError"></span> <?php text("Enter a valid username") ?></div>
但问题是,当“昵称”无效时,请在输入控件旁边输入一个文本。带有错误消息的DIV开始可见,然后正常工作。
我需要这样做:
答案 0 :(得分:10)
您需要配置knockout-validation以不显示错误消息。有两种方法。
第一种是通过绑定:
<div data-bind='validationOptions: { insertMessages: false }'>
<input type="text" data-bind="value: nickname" class="short" maxlength="30" />
<div class="formRow rowErrorMsg" data-bind="visible: nickname.isValid() == false">
</div>
第二个是通过代码:
ko.validation.init({ insertMessages: false });
功能ko.applyBindingsWithValidation(viewModel, rootNode, { insertMessages: false });
功能**上下文有关所有配置选项的说明,请访问:https://github.com/ericmbarnard/Knockout-Validation/wiki/Configuration
如果您有许多字段需要验证,则可以使用messageTemplate模板而不是手动创建所有errorMessage div。