通过敲除验证进行验证

时间:2013-01-30 01:55:22

标签: knockout-validation

使用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开始可见,然后正常工作。

我需要这样做:

  1. 当“昵称”无效时,只需使用我的自定义消息和格式显示DIV。
  2. 加载页面后,DIV必须保持隐藏状态。

1 个答案:

答案 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。