需要在jquery标记输入中仅键入电子邮件ID而不是文本

时间:2013-10-15 07:35:12

标签: jquery jquery-tokeninput

enter image description here

我想,只有电子邮件应该在令牌输入中接受,而不是普通文本..

3 个答案:

答案 0 :(得分:2)

您可以使用jquery验证来检查电子邮件。

例如:

function IsEmail(email) {
 var regex = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/;
return regex.test(email);
}

将电子邮件值传递给email参数到IsEmail函数。

答案 1 :(得分:1)

要添加到Vinod的答案,并将其与您指定的jquery-tokeninput插件相关联,我不相信在添加之前有一个专门用于验证自由文本输入的方法。

我建议使用onAdd回调,通过Vinod的isEmail函数运行项目(作为参数传递),然后在正则表达式测试失败时删除新项目。

未经测试的示例代码:(您可能需要更改remove方法,我不确定它是否需要实际对象或JSON字符串。)

$("#my-text-input").tokenInput("/url/to/your/script/",{
   onAdd: function(item){
       if(!isEmail(item.value)) $("#my-text-input").tokenInput("remove", item);
   }
});

答案 2 :(得分:0)

我已经尝试了这个,它对我来说很好..

For your kind reference..

resultsFormatter: function(item){    
var email_regex = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/i;
console.log("item.email"+item.email);
if(item.email != null){
console.log("Email lalal:: "+item.email);
return "<li>" + item.name +" &lt;"+item.email+"&gt;"+"</li>";   
}
if(item.name.match(email_regex)){
return "<li>" +" Private Student "+ item.name+ "</li>";
}else{
return "<li style='display:none;'>" +" "+"</li>";   
}                   
}
}