【问题标题】:Validating with knockout-validation使用敲除验证进行验证
【发布时间】:2013-01-13 18:17:30
【问题描述】:

使用knockout.js(和knockout-validation)我有这个:

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 必须保持隐藏状态。

【问题讨论】:

    标签: knockout-validation


    【解决方案1】:

    您需要配置敲除验证以不显示错误消息。有两种方法。

    第一种是通过绑定:

    <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 });函数**contextual

    所有配置选项的描述可以在以下位置找到:https://github.com/ericmbarnard/Knockout-Validation/wiki/Configuration

    如果您有许多必须验证的字段,您可以使用 messageTemplate 模板,而不是手动创建所有 errorMessage div。

    【讨论】:

    • 非常感谢您的回答。在 applyBindingsWithValidation 挖掘了 3 个小时之后,我终于找到了你的答案,而且你是唯一一个提到validationOptions 可以在元素的数据绑定上设置的人。你救了我!!!!!!!
    猜你喜欢
    • 1970-01-01
    • 2018-04-11
    • 2012-11-23
    • 2013-05-23
    • 2012-09-29
    • 1970-01-01
    • 2013-07-17
    • 2014-08-11
    • 2013-01-14
    相关资源
    最近更新 更多