按Tab键时如何打开选择框?

时间:2015-04-26 06:49:32

标签: javascript html angularjs select angularjs-directive

选项卡键时,焦点会变为另一个字段。我想要的是,当焦点到达<select>时,会显示选项列表。

这是有效的:

  <div ng-controller="TypeaheadCtrl">
  <input type="text" /><br>
    <input type="text" /><br>
    <input type="text" ng-model="selected" typeahead="state for state in states " />

</div>

这不起作用:

<div ng-controller="TypeaheadCtrl">
  <input type="text" /><br>
    <input type="text" /><br>
    <!-- this is not working -->
    <select  ng-model="selected" >
                            <option value="aa">aa</option>
                            <option value="bb">bb</option>
                        </select>
</div>

我的plunker代码是here

1 个答案:

答案 0 :(得分:2)

您可以使用此指令打开焦点上的选择框

<强>指令

.directive('openSelect', function(){
  return{
    restrict: 'AE',
    link: function(scope, element, attrs){
      element.on('focus', function(){
        element.prop('size',element[0].options.length);
      })
      element.on('blur change', function(){
        element.prop('size',1);
      })
    }
  }
})

<强>标记

<select ng-model="selected" open-select>
  <option value="aa">aa</option>
  <option value="bb">bb</option>
</select>

Working Plunkr