Angular UI ui-keypress不能使用向下键

时间:2013-04-19 16:36:36

标签: angularjs angular-ui

我正在尝试使用angular-ui ui-keypress按下向下键时调用一个函数。从我发现的向下键是代码40.但是我无法触发事件。

如果你看看这个触发ENTER键的函数的jsfiddle(尝试输入甚至13)。但如果你将其改为40则不起作用。 http://jsfiddle.net/jayrmotta/NbjZL/70/

<!DOCTYPE html>
<html ng-app="myModule" xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title>Main</title>
</head>
<body ng-controller="Ctrl">
  <button ng-click="add()">Add</button>
  <input type="text" ui-keypress="{40: 'add()'}" />
  {{item}}
</body>
</html>


var myModule = angular.module('myModule', ['ui.directives']);
function Ctrl($scope) {
  $scope.item = "";

  $scope.add = function () {
    $scope.item = "Item Added";
  }
}

我有错误的代码还是可以告诉我什么是错的?

1 个答案:

答案 0 :(得分:8)

JavaScript keypress事件不会向上,向下,向左或向右触发。您想要使用keyupkeydown。在您的情况下,您需要:ui-keyup="{40: 'add()'}"

http://www.w3schools.com/jsref/event_onkeypress.asp

  

注意:并未针对所有浏览器中的所有键(例如ALT,CTRL,SHIFT,ESC)触发onkeypress事件。要仅检测用户是否按下了某个键,请使用onkeydown事件,因为它适用于所有键。