javascript - 输入点击时 Angular Bootstrap 模式打开

标签 javascript jquery angularjs angular-ui-bootstrap

在我的 Controller 中我有方法

  • $scope.openJukeboxesModalToGroup -- 打开模态弹出窗口
  • $scope.searchJukeboxes --- 在页面上搜索
  • $scope.keyPressed -- 捕获按键

在表格的部分

<form class="form-inline" role="form" ng-submit="deadForm()">
    <div class="form-group">
         <button ng-click="openJukeboxesModalToGroup()" class="btn btn-info">Add Stores to Group</button>
    </div>
    <div class="form-group">
        <input type="text" ng-model="jukeboxFilter" ng-keypress="keyPressed($event, 'search')" class="form-control" placeholder="search">
    </div>
    <button type="button" ng-click="searchJukeboxes()" class="btn btn-info"><span class="glyphicon glyphicon-search"></span></button>
    <button type="button" ng-click="resetFilter()" class="btn btn-info"><span class="glyphicon glyphicon-repeat"></span></button>
</form>

keyPressed 方法是

$scope.keyPressed = function($event, eventType) {
        $event.stopImmediatePropagation();
        if(eventType=='search') {
            if($event.which==13) {
                $scope.searchJukeboxes();
           }
       } 
 };

每当有人在文本栏中输入内容并单击回车时,我都会尝试开始搜索。但我不知道 openJukeboxesModalToGroup() 方法也被调用了。我试图通过调用停止事件传播、更改 openJukeboxesModalToGroup() 方法的名称来阻止这种情况。但没有任何效果。对此有任何帮助。

deadForm() 方法已实现,我在 chrome 控制台中没有收到任何错误。

最佳答案

openJukeBoxesModalToGroup() 的按钮更改为:

<button type="button" ng-click="openJukeboxesModalToGroup()" class="btn btn-info">Add Stores to Group</button>

问题是您没有提供类型,因此它将按钮归类为提交,在这种情况下,openJukeboxesModalToGroup() 将从您的输入 submit 事件中触发。

当您在表单中按下回车键时,它会触发提交,我建议您通过 ng-submit 指令将您的方法添加到表单本身,并使您的按钮成为提交...

<form class="form-inline" role="form" ng-submit="searchJukeboxes()">
    <div class="form-group">
         <button type="button" ng-click="openJukeboxesModalToGroup()" class="btn btn-info">Add Stores to Group</button>
    </div>
    <div class="form-group">
        <input type="text" ng-model="jukeboxFilter" ng-keypress="keyPressed($event, 'search')" class="form-control" placeholder="search">
    </div>
    <button type="submit" ng-click="searchJukeboxes()" class="btn btn-info"><span class="glyphicon glyphicon-search"></span></button>
    <button type="button" ng-click="resetFilter()" class="btn btn-info"><span class="glyphicon glyphicon-repeat"></span></button>
</form>

关于javascript - 输入点击时 Angular Bootstrap 模式打开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27859779/

相关文章:

angularjs - 带有延迟加载的 Angular 树指令

javascript - 以编程方式添加到 Accordion 部分 Jquery 内的列表项

javascript - 为什么我的 onclick 事件自动触发

javascript - 使用 jQuery 向文档添加样式表

javascript - getCurrentPosition 不适用于 angularjs

javascript - Angular Bootstrap 应用程序中的进度条错误

javascript - 脚本开头的 "(function() {"的用途(仅限 GreaseMonkey?)

javascript - 将 "big"表拆分为更小的表

jquery - 加载后的 Backbone js 事件

jquery - MVC3 不在部分更新时执行 JQuery