【问题标题】:How to create <input> that works as a link when pressing enter如何创建按回车键时用作链接的 <input>
【发布时间】:2015-11-16 13:58:05
【问题描述】:

我希望能够将query 输入&lt;input&gt;,然后按回车将用户重定向到\query

我知道使用 javascript 很容易做到这一点,但似乎应该有更好的 HTML 方式。

您能否建议这里的最佳做法是什么?我正在使用 Angular,所以如果实现它的最佳方法是使用 Angular,那也很好。

【问题讨论】:

  • 重定向到 \query 或 \whatUsersEnter?
  • 重定向到 \whatUsersEnter
  • 所以听keypress,检查keyCode是否为13,将位置设置为值,看起来很简单。
  • 在那个例子中,doWork() 函数可能会触发类似 $location.url('mylink.com/query?value=' + scope.searchText);

标签: javascript html angularjs web-applications


【解决方案1】:

您可以在输入标签中使用ng-keypress 指令...

HTML

<input ng-keypress="goToQueryPage($event)" ng-model="query>

控制器

$scope.goToQueryPage = function(keyEvent) {
  if (keyEvent.which === 13)
     alert('Go to ' + $scope.query);
}

这里是plunker

【讨论】:

  • ng-keypress vs ng-enter 在这种情况下输入不是更好吗?
  • ng-enter 实际上只是对 ng-keypress 的重新编码。无需在那里重新发明轮子。
  • ng-keypress 是核心指令另一方面 ng-enter 当然不是你可以使用指令,如果你将在许多地方实现该逻辑但使用核心指令要好得多。
  • @bjedrzejewski 如果您在评论中查看 jsfiddle,它已经很老了,当时 angularjs 的核心没有 ng-keypress 指令...
猜你喜欢
  • 1970-01-01
  • 2010-12-21
  • 1970-01-01
  • 2012-05-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多