使用angular.js控制重复条目

时间:2016-07-01 17:21:51

标签: javascript jquery angularjs duplicates

我正在使用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);
    };
  })();

1 个答案:

答案 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;
       }
    }
  }
}

Working Plunker