Множественная проверка электронной почты с использованием ko.observable

Я новичок в приложении Durandal. В настоящее время я пытался проверить несколько писем, прочитанных из текстовой области.

<textarea class="fullWidth" id="AddEmailSeparatedByComma"  rows="3" 
data-bind="value:emailList"></textarea>

Я прочитал несколько писем, разделенных знаком "," и сохранил их в

emailList = ko.observable("").extend({
 email: { message: "Please enter valid email address", params: true } 
});

Я предоставил сообщение проверки, как указано выше. В настоящее время он проверяет только одно электронное письмо, я не знаю, как использовать здесь настраиваемое регулярное выражение для проверки нескольких электронных писем, разделенных запятой. Любая помощь будет высоко ценится.


person Pandiyan Cool    schedule 25.10.2013    source источник


Ответы (1)


Добавьте еще одно правило проверки:

ko.validation.rules['emaillist'] = {
    validator: function (val, validate) {
        if (!validate) return true;
        if (ko.validation.utils.isEmptyVal(val)) return true;

        var emailrule = ko.validation.rules['email'];

        var vals = val.split(/\s*,\s*/);
        for (var i = 0; i < vals.length; i++) {
            if (!emailrule.validator(vals[i], true)) {
                return false;
            }
        }

        return true;
    },
    message: 'Please enter proper comma-separated email addresses'
};
ko.validation.addExtender('emaillist');

Скрипка

person Markus Jarderot    schedule 25.10.2013
comment
не могли бы вы дать мне скрипку, если это возможно - person Pandiyan Cool; 25.10.2013
comment
Сообщение о проверке не исчезает после ввода пользователем правильного формата - person Pandiyan Cool; 25.10.2013