我正在使用angular.js从某些输入字段中获取一些表单数据。我需要构建一个阻止用户输入重复字段的功能。因此,如果用户输入了重复字段,我需要使用警报框提醒用户,然后删除重复项。我知道如何使用jQuery执行此操作,请查看下面的代码。使用angular.js实现此目的的最有效方法是什么?非常感谢任何帮助,我有模板小提琴here,以使其更容易。
/** Handle Duplicate Barcodes **/
$(".alldifferent").on('keyup paste',function(){
var $this = $(this);
keyupDelay(function() {
var val = $this.val();
$this.attr('value', val);
if (val != '') {
var $dupes = $('input[value="' + val + '"]:gt(0)').val('');
if ($dupes.length > 0) alert('Error: Duplicates barcodes are not allowed!');
}
}, 300);
});
var keyupDelay = (function() {
var timer = 0;
return function(callback, ms) {
clearTimeout(timer);
timer = setTimeout(callback, ms);
};
})();
答案 0 :(得分:0)
尝试ng-blur
,因为当元素失去焦点时会触发模糊事件。
如果您可以知道输入重复条目的索引,您可以过滤该数组中的该项并清除它。
$scope.check = function(val, index){
if(val !== '') {
for(var i = 0; i < $scope.num.length; i++ ){
var itm = $scope.num[i].text;
if(itm == val && i != index) {
$scope.num[index].text = '';
alert('Error: Duplicates barcodes are not allowed!');
break;
}
}
}
}