【问题标题】:Knockout validation dont display default message淘汰赛验证不显示默认消息
【发布时间】:2013-05-28 03:22:02
【问题描述】:

我想让 KO 验证与验证消息的引导样式一起工作。

我有它,以便在内容无效时显示引导验证消息,但它也会在旁边显示 OOB KO 验证消息。

下面是我的代码,我原以为 data-bind="validationMessage: Name" 会阻止显示默认值,但事实并非如此。有什么我想停止显示的东西吗?

<div class="container">
   <form class="form-horizontal">
        <div class="control-group" data-bind="css: { success: Name.isModified() && Name.isValid(), error: Name.isModified() && !Name.isValid() }">
        <label for="inputName" class="control-label">Name</label>
        <div class="controls">
            <input type="text" id="inputName" placeholder="put something in and then clear" data-bind="value: Name, valueUpdate: 'afterkeydown'">
            <span class="help-inline" data-bind="validationMessage: Name, visible: Name.isModified() && !Name.isValid()"></span>
        </div>
    </div>
       </form>
</div>

function ViewModel() {
    var self = this;
    self.Name = ko.observable()
    .extend({ required: true });
    return self;
}
$(function () {
    ko.applyBindings(new ViewModel());
});

JSFiddle 在这里:http://jsfiddle.net/KmKa4/8/

【问题讨论】:

    标签: twitter-bootstrap knockout.js knockout-validation


    【解决方案1】:

    使用data-bind="validationMessage: Name" 是不够的,您需要将insertMessages 属性设置为false 以禁用自动错误消息插入。

    您可以在初始化 ko 验证插件时这样做:

    ko.validation.init({insertMessages: false});
    

    演示JSFiddle.

    您可以查看Cofiguration documentation.中的其他配置选项

    【讨论】:

    • 我试图仅在需要该字段时显示消息 - 否则我需要移动它。但是当它发生变化时,它似乎没有使用 ko.computed 的新值。你知道这是不是真的吗?
    猜你喜欢
    • 2014-12-04
    • 2012-09-05
    • 2013-01-24
    • 2014-02-21
    • 2012-08-19
    • 2017-09-26
    • 1970-01-01
    • 2014-02-11
    • 2014-04-19
    相关资源
    最近更新 更多