【问题标题】:not getting errorElementClass没有得到errorElementClass
【发布时间】:2013-12-12 16:42:39
【问题描述】:

场景:我已经向 observable-array 添加了验证,例如关于 observable array 中的 observable 字段 例如:

this.field = ko.observable().extend({
           required: { params: true, message: "field is required." },
           digit: { params: true, message: "field must be number." },
           min: { params: 0, message: "field must be between 0 to 9999." },
           max: { params: 9999, message: "field must be between 0 to 9999." }
       });

同时初始化验证:

 ko.validation.init({
           registerExtenders: true,
           messagesOnModified: false,
           insertMessages: false,
           decorateElement: true,
           errorElementClass: 'input-validation-error',
           errorMessageClass: 'field-validation-error'
       });

但没有得到errorElementClass: 'input-validation-error',除了需要的验证之外的其他验证注意:它需要class=valid 用于其他验证规则违规,但显示错误消息'

【问题讨论】:

    标签: knockout.js


    【解决方案1】:

    我在jsFiddle中设置了类似的东西:

    ko.validation.init({
        registerExtenders: true,
        messagesOnModified: false,
        insertMessages: true,
        decorateElement: true,
        errorElementClass: 'input-validation-error',
        errorMessageClass: 'field-validation-error'
    });
    
    function Money() {
        this.Amount = ko.observable().extend({
            required: {
                params: true,
                message: "field is required."
            },
            digit: {
                params: true,
                message: "field must be number."
            },
            min: {
                params: 0,
                message: "field must be between 0 to 9999."
            },
            max: {
                params: 9999,
                message: "field must be between 0 to 9999."
            }
        });
    
        this.onSubmit = function (e) {
            return this.Amount.isValid();
        }
    }
    
    ko.applyBindings(new Money());
    

    在 FF 中试试这个 我建议检查以下步骤

    1. 按以下顺序引用脚本文件

      • jquery
      • 淘汰赛
      • 淘汰赛验证
    2. 确保 ko.validations.init 在 domReady 的最顶端调用

    3. 不存在版本不匹配。最新的 ko.validation 似乎适用于淘汰赛 3.0

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-03-01
      • 2017-12-16
      • 2017-07-07
      • 2020-12-21
      • 2015-01-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多