insertValidationMessage knockout无法正常工作

时间:2014-04-25 08:46:18

标签: jquery knockout.js knockout-validation

我正在使用淘汰赛验证我希望通过我自己的功能显示自定义消息 这是我的ko验证代码

  ko.validation.init({

   // registerExtenders: true,
    messagesOnModified: false,
    insertMessages: true,
    parseInputAttributes: true,
    messageTemplate: null,
    grouping: { deep: true, observable: true },
    registerExtenders: true,
    insertValidationMessage: function (element) {

        var span = document.createElement('SPAN');
        span.className = "validationMessage";

        if ($(element).hasClass("error-before"))
            element.parentNode.insertBefore(span, element);
        else
            element.parentNode.insertBefore(span, element.nextSibling);

        return span;
    }
});

但是没有调用insertvalidationmessage我做错了什么

1 个答案:

答案 0 :(得分:0)

init方法仅支持覆盖配置属性,因此如果要覆盖方法,则需要直接在ko.validation对象上执行。

所以你的初始化代码应如下所示:

ko.validation.init({
   // registerExtenders: true,
    messagesOnModified: false,
    insertMessages: true,
    parseInputAttributes: true,
    messageTemplate: null,
    grouping: { deep: true, observable: true },
    registerExtenders: true
});

ko.validation.insertValidationMessage: function (element) {

    var span = document.createElement('SPAN');
    span.className = "validationMessage";

    if ($(element).hasClass("error-before"))
       element.parentNode.insertBefore(span, element);
    else
       element.parentNode.insertBefore(span, element.nextSibling);

    return span;
}