javascript - 当光标位于文本字段内时如何编写按键事件

标签 javascript jquery angularjs

enter image description here

您好,我正在为该屏幕的远程编写按键事件,上下工作正常,问题是当光标位于文本字段内时,我的按键事件不起作用。

如果有人知道关键事件请帮助我。

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,如果我按回车键,当搜索文本字段中的红色边框时光标将聚焦,但之后我的按键事件不起作用。 实际上我想将 Controller 从文本字段向右和向上移动。

我的代码有什么问题,请帮助我。

最佳答案

最好的解决办法是:

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

另一种(更糟糕的)方法是:

如果您的光标位于输入中并且您的按键事件不起作用,您应该检查光标位于输入中时按下的每个键。为此,您应该在输入中添加change()函数,在该函数中您可以检查光标位于输入中时按下的键

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

关于javascript - 当光标位于文本字段内时如何编写按键事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37519011/

相关文章:

javascript - @next/bundle-analyzer 中的 "First Load JS"实际测量的是什么?

javascript - 如何测试参数化方法是否抛出 chai 和 mocha?

javascript - json_encode 用于多行字符串 php 到 javascript

javascript - 分析 jQuery 应用程序

Javascript - 在 Typeahead 中显示名称并获取 ID

javascript - 预加载页面

javascript - jquery cookie 变量没有更新

javascript - 如何使用 javascript 生成正确的 csv 文件格式

javascript - 将模拟提供者注入(inject) Angular 单元测试

javascript - AngularJS 表单自定义验证( future 日期)