2017-09-06 95 views
1

我想用输入html kendo验证电子邮件地址。 这是我的html代码:如何使用kendo验证程序验证多个电子邮件?

<label for="doc" class="required">E-mail</label> 
<input type="email" multiple pattern="^([\w+-.%][email protected][\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" /> 

我想地址用逗号隔开,但这并不工作无法验证剑道

enter image description here

+1

显然,这是行不通的!如果您想在单个输入框中验证多个电子邮件地址,则需要创建kenod自定义验证程序规则。 –

回答

2

这里工作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 = /^(([^<>()\[\]\\.,;:\[email protected]"]+(\.[^<>()\[\]\\.,;:\[email protected]"]+)*)|(".+"))@((\[[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"); 
        } 

       });