2016-05-30 4 views
1

enter image description hereКак написать ключевые события, когда курсор внутри текстового поля

Привета Я пишу ключевые события для дистанционного управления для этого экрана, подъемы и спады работают должным образом, проблема в том, когда курсор находится внутри текстового поля моего ключа события не работают.

если кто-нибудь знает о ключевых событиях, то plz мне поможет.

Controller.js

var unFocusText = function(){ 
 
     $("#search_all")[0].blur(); 
 
    }; 
 

 

 
case PV.yoohu.appConstants.keyCodes.BACK: 
 
case PV.yoohu.appConstants.keyCodes.ESC: 
 
    break; 
 
case PV.yoohu.appConstants.keyCodes.SELECT: 
 

 
if (_isSearchItemHighlighted == 8) {       
 
    $("#search_all")[0].focus(); 
 
} 
 

 
break; 
 
case PV.yoohu.appConstants.keyCodes.DOWN: 
 
    if (searchScreen) { 
 
    if (0 <= _isSearchItemHighlighted && _isSearchItemHighlighted <=   $scope.searchFilters.length-1) { 
 
    isSearchItemHighlighted = 8; 
 
          
 
    } 
 
    } 
 

 
    break; 
 
case PV.yoohu.appConstants.keyCodes.RIGHT: 
 
if (_isSearchItemHighlighted == 8) {       
 
    _isSearchItemHighlighted = 9; 
 
    unFocusText();   
 
} 
 

 
    break; 
 
case PV.yoohu.appConstants.keyCodes.UP: 
 

 
    if (_isSearchItemHighlighted == 8) {       
 
    _isSearchItemHighlighted = 0; 
 
    unFocusText(); 
 
    }
<div id="searchCategory"> 
 
      <div id="searchFilter" ng-repeat="item in searchFilters"> 
 
       <input id="searchFilternames" type="radio" ng-model="selectedFilter.name" 
 
       value="{{item.name}}" 
 
       ng-class="{'selected-search-asset-border': isSearchItemHighlighted($index)}" 
 
       ng-checked="isItemChecked(item, $index)"/><span 
 
       ng-bind="item.name"></span>     
 
      </div> 
 
     </div> 
 

 
     <input type="text" id="search_all" class="input" placeholder="enter text" ng-class="{'selected-search-asset-border': isSearchItemHighlighted(8)}" 
 
     />&nbsp; 
 

 
     <input type="image" id="searchButton"class="searchImage" src="resources/search1.png" 
 
     ng-class="{'selected-search-asset-border': isSearchItemHighlighted(9)}" ng-click="availableSearchList()" />

индекс не поискового текстового поля не 8, если я нажимаю войти, когда Красная Border в Search TextField курсор будет сфокусировано, но после того, что мои ключевые события не работают. На самом деле я хочу переместить контроллер вправо и вверх из текстового поля.

Что случилось в моем коде, пожалуйста, помогите мне.

ответ

0

Лучшее решения:

$("your_input").keyup(function (e) { 
     if (e.keyCode == 13) { 
      // Do something 
     } 
    }); 

Другой (хуже) способ:

В случае, когда курсор находится на входе и ваши ключевые события Арента работать, вы должны проверить каждый ключ, который при нажатии когда курсор находится на входе. Для этого необходимо добавить функцию изменения() в вашем входе и в функции вы можете проверить ключи, которые нажаты, когда курсор находится на входе

$("your_input").change(function() { 
     var key_pressed = your_input.text().slice(-1); 
     if (key_pressed = "e") 
     //do that 
    }); 
+0

Не могли бы вы подробнее рассказать свой ответ, добавив немного больше описание решения, которое вы предоставляете? – abarisone

+1

Я отредактировал свой ответ, пожалуйста, проверьте первое решение и скажите мне, помогло ли оно :) –

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