【问题标题】:ng-blur with uib-typeahead (ui-bootstrap)带有 uib-typeahead 的 ng-blur (ui-bootstrap)
【发布时间】:2018-04-01 18:21:12
【问题描述】:
   <div class="form-group">
       <label for="Skill1">Skill</label>
       <input type="text"
        ng-model="vm.skill1" 
        name="skill1"
        uib-typeahead="skill for skill in vm.skills | filter:$viewValue"
        class="form-control typeahead"
        ng-blur="vm.checkSkills(vm.skill1)"
        placeholder="" 
        required> 
   </div>

我的环境是 AngularJs,我只在用户离开此字段时尝试使用 ng-blur,但是由于预输入,如果我使用鼠标选择预输入建议的选项,ng-blur “认为" 我离开了现场,只用我输入的第一个字母激活了 ng-blur 我怎样才能覆盖它?

【问题讨论】:

  • 忘记了这两行:
    请使用这些行编辑您的帖子,以便我们在上下文中查看它们

标签: html angularjs angular-ui-bootstrap


【解决方案1】:

不用ng-blur,可以使用

实现所需的功能

typeahead-on-select="checkSkills($item,$model,$label)"

HTML

<input  type="text"  ng-model="skill1" uib-typeahead="skill for skill in skills | filter:$viewValue" class="form-control typeahead" typeahead-on-select="checkSkills($item,$model,$label)"

JS

$scope.checkSkills = function(item, model, label){ 
   if(model){
      //your validation logic goes here
     // console.log (" Check skill, correctly set ", (item), model , label);
   }

 }

Plunker 示例:https://plnkr.co/edit/7N8TU2?p=preview

【讨论】:

  • 谢谢阿尼尔。您的答案解决了从预先输入值中选择值的问题。但是,如果我键入一个预先输入未找到的值,我不会触发该功能,我该如何解决这个问题?
猜你喜欢
  • 2016-08-20
  • 2014-08-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多