如何使用剑道验证器验证多封电子邮件?

Posted

技术标签:

【中文标题】如何使用剑道验证器验证多封电子邮件?【英文标题】:How to validate multiple email with kendo validator? 【发布时间】:2018-02-15 02:07:23 【问题描述】:

我想通过输入 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" />

我想用逗号分隔地址,但这不起作用!对剑道无效

【问题讨论】:

显然,这是行不通的!如果您想在单个输入框中验证多个电子邮件地址,则需要创建 kenod 自定义验证器规则。 【参考方案1】:

DEMO 正在努力验证单个输入字段中的多封电子邮件,以分号分隔。

为此,我创建了一个自定义 Kendo 验证器规则。 DEMO 中的代码 sn-p 如下所示:

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");
                    

                );

【讨论】:

以上是关于如何使用剑道验证器验证多封电子邮件?的主要内容,如果未能解决你的问题,请参考以下文章

Go:连接到 SMTP 服务器并在一个连接中发送多封电子邮件?

用分号正则表达式分隔的多封电子邮件[重复]

剑道 jQuery 电子表格日期值保存

如何使用 Codeigniter 通过 cc 发送多封电子邮件?

如何在 Django 中支持使用多封电子邮件的用户?

如何在 laravel 中配置多封电子邮件 [关闭]