Вопрос по customization – Установите собственное сообщение об ошибке, используя собственные правила плагина проверки нокаута

18

Я использую Asp.net MVC3 и библиотеку knockoutjs. Мне нужно сделать некоторые проверки на стороне клиента. Я изучаю плагин проверки нокаута.

Поэтому я объявляю следующее значение ko.observable в моем коде js:

 var numberValue = ko.observable().extend({ number: true }) 

Это моя часть зрения:

<input data-bind = "value: numberValue " />

Когда пользователь вводит какое-либо значение, которое не является числом, отображается сообщение об ошибке: "Пожалуйста, введите число". Могу ли я отобразить другое сообщение об ошибке, но все еще используя собственные правила? Я не хочу писать собственную логику проверки только для этого. Любая помощь с некоторым рабочим примером будет принята с благодарностью. Благодарю вас!

Ваш Ответ

3   ответа
34

Error: User Rate Limit Exceeded

addExtender: function (ruleName) {
    ko.extenders[ruleName] = function (observable, params) {
        //params can come in a few flavors
        // 1. Just the params to be passed to the validator
        // 2. An object containing the Message to be used and the Params to pass to the validator
        //
        // Example:
        // var test = ko.observable(3).extend({
        //      max: {
        //          message: 'This special field has a Max of {0}',
        //          params: 2
        //      }
        //  )};
        //
        if (params.message) { //if it has a message object, then its an object literal to use
            return ko.validation.addRule(observable, {
                rule: ruleName,
                message: params.message,
                params: params.params || true
            });
        } else {
            return ko.validation.addRule(observable, {
                rule: ruleName,
                params: params
            });
        }
    };
},

Error: User Rate Limit Exceeded

var numberValue = ko.observable().extend({ number: { 
    message: "some custom message", 
    params: true 
} }) 

Error: User Rate Limit Exceeded

Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded{0}Error: User Rate Limit Exceededthis.foo = ko.observable('').extend({ max: { params: 5, message: "The maximum value is {0}!" } });
Error: User Rate Limit Exceeded Mdb
Error: User Rate Limit Exceeded
0

Error: User Rate Limit Exceededparams.

ko.observable().extend({
    unique: {
        params: {
            collection: foo,
            valueAccessor: function(item) {
                return item.bar();
            }
        },
        message: 'some custom message'
    }
}
33

Error: User Rate Limit Exceeded

 emailAddress: ko.observable().extend({  // custom message
        required: { message: 'Please supply your email address.' }
    }),
Error: User Rate Limit Exceededgithub.com/Knockout-Contrib/Knockout-Validation/wiki/…Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded

Похожие вопросы