我正在使用ng-tags-input
, 并尝试修改输入,以便只能添加允许的标签。例如,一个数组包含 'Tag1' 但不包含 'T1',所以当在输入栏中输入 'T1' 时它是不被接受的,但 'Tag1' 是因为它是 'permitted'。
谢谢。
我正在使用ng-tags-input
, 并尝试修改输入,以便只能添加允许的标签。例如,一个数组包含 'Tag1' 但不包含 'T1',所以当在输入栏中输入 'T1' 时它是不被接受的,但 'Tag1' 是因为它是 'permitted'。
谢谢。
目前没有内置的方法来执行这种验证。但我认为你可以使用不同的方法:
autoComplete
指令为用户提供有效国家代码列表;addFromAutocompleteOnly
选项设置为true
,因此只允许来自自动完成列表的标签。HTML
<tags-input ng-model="countryCodes" add-from-autocomplete-only="true">
<auto-complete source="loadCountryCodes($query)"></auto-complete>
</tags-input>
以防万一尝试检查电子邮件 ID,下面是代码。如有其他验证,请相应更改验证功能。
HTML:
<tags-input ng-model="tagList" add-on-space="true" add-on-comma="true" add-on-blur="true" add-on-enter="true" on-tag-added="tagAdded($tag);" placeholder="Add comma separated email id's" ></tags-input>
控制器:
$scope.tagList = ['abc.def@gmail.com', 'pqr.stu@gmail.com'];
$scope.tagAdded=function(tag){
var textEntered=tag.text;
var isVaildEmail=validateEmail(tag.text);
console.log($scope.tagList);
if(isVaildEmail){
console.log(true); //do something
}
else{
$scope.tagList.splice($scope.tagList.indexOf(tag),1); //remove the aded tag from ng-model of the input. i.e. tagList
}
}
function validateEmail(email) {
var re = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
return re.test(email);
}