2015-04-01 2 views
0

Как сфокусировать поле ввода кулака на активной вкладке? Следующая вкладка становится активной программно, после ее активации должен быть выбран первый вход. Использование Angular JS Bootstrap UIКак сфокусировать поле ввода кулака в активной вкладке навигации в угловой бутстрапе ui?

ответ

0

Я решил, создав директиву с просмотром свойство из моей сферы

.directive('focusFirstInputWhenActive',function ($timeout) { 
      return { 
       restrict: 'A', 
       link: function (scope, elem) { 
        scope.$watch('myObject.active', function(isActive) 
        { 
         if(isActive){ 
          $timeout(function() { 
           var availableInputs = $('input:enabled', elem); 
           $(availableInputs[0]).focus(); 
           $(availableInputs[0]).select(); 
          }); 
         } 
        }); 
       } 
      }; 
     }) 

и HTML выглядит следующим образом:

<tabset class="tab-content-wrapper"> 
     <tab ng-repeat="myObject in myObjectList" active="myObject .active"> 
       <div focus-first-input-when-active> 
        //content here 
       </div> 
    </tab> 
</tabset> 
0

У меня было что-то, что звучит одинаково.

Для изменения TAB

<button class="btn btn-default btn-sm" 
     ng-click="tabs[0].active = true">Select second tab</button> 

От https://angular-ui.github.io/bootstrap/#/tabs

Если его статический атрибут HTML5 может работать

<input type="text" name="fname" autofocus> 

Mine был динамичным, так что я сделал (и я dident знать о html5 предмет когда я сделал)

.factory('focus', function($timeout) { 
     return function(id) { 
      $timeout(function() { 
       var element = document.getElementById(id); 

       if (element) 
        element.focus(); 
      }); 
     }; 
    }) 

И я просто назову это из кода, мне пришлось это сделать, поскольку у меня был код, который бы изменил что-то, что сделало что-то похожее.

Смежные вопросы