use*_*120 4 javascript jquery tag-it
我正在使用以下标签 - 它插件:http://widen.github.io/jQuery-Tagit/.
我想验证标签,输入将是电子邮件地址.我怎样才能做到这一点?
我的代码:
HTML
<div id="editOnClick" class="example">
<ul name="email[]" id="email"></ul>
</div>
Run Code Online (Sandbox Code Playgroud)
JavaScript(jQuery)
$(document).ready(function () {
$('#editOnClick > ul').tagit({
select:true,
triggerKeys:['comma', 'enter', 'space', 'semicolon', 'tab'],
tagSource:"view_email_get_emails.php",
editOnClick:true
beforeTagAdded: function(event, ui) {
return isEmail($('#email').tagit("tags"))}
});
function isEmail(email) {
var regex = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/;
return regex.test(email);
}
});
});
Run Code Online (Sandbox Code Playgroud)
我将我的代码添加到JSFiddle.
我将使用tagsChanged回调来检测何时添加了新标记,然后进行验证,如果无效则将其删除.我看到你已经习惯了beforeTagAdded- 我不知道你从哪里来的?但我不知道这个插件.
以下代码完成了这项工作.更新了JSFiddle
$(document).ready(function () {
$('#editOnClick > ul').tagit({
select:true,
triggerKeys:['comma', 'enter', 'space', 'semicolon', 'tab'],
tagSource:"view_email_get_emails.php",
editOnClick:true,
tagsChanged: function(tagValue, action, element){
if (action == 'added'){
if (!isEmail(tagValue)){
$('#editOnClick > ul').tagit("remove", 'tag', tagValue);
}
}
});
function isEmail(email) {
var regex = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/;
return regex.test(email);
}
});
Run Code Online (Sandbox Code Playgroud)