敲除验证不显示默认消息

时间:2013-06-01 10:59:20

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

我想让KO验证与引导样式一起用于验证消息。

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

enter image description here

下面是我的代码,我原以为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/

1 个答案:

答案 0 :(得分:7)

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

使用以下命令初始化ko验证插件时可以执行此操作:

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

演示JSFiddle

您可以查看Cofiguration documentation.

中的其他配置选项