2017-09-06 94 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"); 
        } 

       });