You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现输入框仅按回车键触发loader,输入文本时不启动加载?

问题现象

在输入框中键入文本时,加载器(loader)会自动启动加载,预期效果为仅当用户按下回车键时,加载器才触发工作。

现有问题代码

当前逻辑绑定了筛选框的filterChanged事件,该事件会在筛选框内输入任意内容时立刻触发,直接开启加载状态,代码如下:

// Function is called when user enter input any text in filter box
$scope.gridGuestsApi.core.on.filterChanged($scope, function () {
  $scope.direct = false;
  $scope.oppvmware_guestlist_loading = true;  // To show the loader
});
调整方案
  • 移除原有filterChanged事件回调中直接开启加载状态的代码,禁止输入内容变更时立刻触发加载
  • 为筛选框绑定回车键监听事件,仅捕获到Enter键按下动作时,才开启加载状态、执行后续筛选查询逻辑

参考实现代码(基于当前AngularJS 1.x技术栈):

// 调整原有filterChanged回调,移除直接触发loading的逻辑
$scope.gridGuestsApi.core.on.filterChanged($scope, function () {
  $scope.direct = false;
  // 已移除: $scope.oppvmware_guestlist_loading = true;
});

// 绑定筛选框的键盘按下事件,选择器替换为你项目中实际筛选框的元素标识
angular.element('.grid-filter-input').on('keydown', function (e) {
  // 匹配回车键
  if (e.key === 'Enter' || e.keyCode === 13) {
    e.preventDefault();
    // 触发加载状态
    $scope.oppvmware_guestlist_loading = true;
    // 此处写入原有筛选数据查询、列表刷新的业务逻辑
    $scope.$apply(); // 手动触发视图更新
  }
});

提示:如果项目中已经使用了ng-keydown这类框架自带的事件指令,优先通过框架指令绑定事件,减少直接DOM操作,核心判断逻辑保持一致即可。

内容的提问来源于stack exchange,提问作者pranayan pandey

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 09:42:28