Как проверить несколько писем с помощью kendo validator?
Я хотел бы проверить адреса электронной почты с вводом HTML кендо. Это мой HTML-код:
<label for="doc" class="required">E-mail</label>
<input type="email" multiple pattern="^([\w+-.%]+@[\w-.]+\.[A-Za-z]{2,4},*[\W]*)+$" value="" data-bind="value: mail" id="doc" name="mail" required data-email-msg="Email format is not valid" />
Я хотел бы, чтобы адреса были разделены запятой, но это не работает! Не подходит для кендо
1 ответ
Решение
Здесь работает DEMO для проверки нескольких электронных писем в одном поле ввода, разделенном точкой с запятой.
Для этого я создал собственное правило проверки Kendo. Фрагмент кода из DEMO показан ниже:
HTML:
<input type="text" class="k-textbox" name="Email" id="Email" required data-required-msg="Please enter atleast one email" data-multipleemails-msg="Some of the Entered Email ids are invalid"/>
JS:
function validateEmail(email) {
var re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
return re.test(email);
}
$(function () {
var container = $("#employeeForm");
kendo.init(container);
container.kendoValidator({
rules: {
multipleemails: function (input) {
if (input.is("[data-multipleemails-msg]") && input.val() != "")
{
var emailsArray = input.val().split(";");
for (var i=0; i < emailsArray.length; i++)
{
//alert(emailsArray[i]);
//return validateEmail(emailsArray[i].trim());
if ((emailsArray[i].trim() != "") && (validateEmail(emailsArray[i].trim()) == false))
{
return false;
}
}
}
return true;
}
}
});
});
$('#save').click(function() {
//alert('save');
var validator = $("#employeeForm").data("kendoValidator");
if (validator.validate()) {
alert("Form is successfully validated");
}
});