输入字段上有两个函数调用,一个是onBlur,另一个不是Angular

时间:2016-05-16 16:34:42

标签: javascript angularjs validation angular-ngmodel angular-ui-typeahead

我有一个带有两个要触发的函数的先行字段。一个应该是模糊的,这是该领域的验证。另一个应该是用户类型,这是uib-typeahead使用的函数。

现在我正在使用ng-model-options="{ updateOn: 'blur' }"但是它不会在用户输入时触发预先输入。

有没有办法让验证功能触发onBlur和正常的预先触发?

例如,我调用了一个指令编号验证,我想调用模糊。然后在typeahead中我想在用户输入时调用triggerfunction。

                          <input
                           number-validation
                           type="text"
                           maxlength="10"
                           class="form-control input-sm"
                           ng-model="number"
                           ng-change="number.elsewhere = null"
                           required
                    uib-typeahead="number for number in triggerfunction($viewValue)"
                    typeahead-template-url="/template.html"
                    typeahead-loading="Loadinglocations" typeahead-on-select="SelectFunction($item, 1)" typeahead-wait-ms="3"
                    typeahead-min-length="3">

2 个答案:

答案 0 :(得分:1)

对于&#34;模糊&#34;,您可以使用&#34; ng-blur&#34;。对于预先输入功能,请使用&#34; ng-keyup&#34;。

这是一个小例子......

https://jsfiddle.net/eh2morxb/

而且,这是代码......

<input type="text" ng-model="inputText" ng-blur="blurHandler()" ng-keyup="typeAhead()" placeholder="Type something...">

angular.module("myApp", []).controller("myController", ["$scope", function($scope) {
  $scope.inputText = "";
  $scope.typeAheadMessage = "";
  $scope.blurMessage = "";

  $scope.blurHandler = function() {
    $scope.blurMessage = "Perform input validation on " + $scope.inputText;
  };

  $scope.typeAhead = function() {
    $scope.typeAheadMessage = "Perform type-ahead lookup on " + $scope.inputText;
  };
}])

答案 1 :(得分:0)

您可以利用ng-blur指令触发模糊https://docs.angularjs.org/api/ng/directive/ngBlur

上的事件