Javascript 功能通过点击和键盘输入

Javascript 功能通过点击和键盘输入,javascript,twitter-bootstrap-3,bootstrap-modal,Javascript,Twitter Bootstrap 3,Bootstrap Modal,我希望通过单击并按Enter键在对话框中执行Javascript函数。第一个有效。不幸的是,我无法正确实现函数(“Save”按钮的addTask() <div class="modal fade" id="add_new_task_modal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel"> <div class="modal-dialog modal-new-item" role="doc

我希望通过单击并按Enter键在对话框中执行Javascript函数。第一个有效。不幸的是,我无法正确实现函数(“Save”按钮的addTask()

<div class="modal fade" id="add_new_task_modal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
        <div class="modal-dialog modal-new-item" role="document">
            <div class="modal-content">
                <div class="modal-header">
                    <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span
                            aria-hidden="true">&times;</span></button>
                    <h4 class="modal-title" id="myModalLabel">Add new item</h4>
                </div>
                <div class="modal-body">

                    <ul class="alert alert-danger" ng-if="errors.length > 0">
                        <li ng-repeat="error in errors">
                            {{ error }}
                        </li>
                    </ul>

                    <div class="form-group">
                        <label for="quantity">Quantity</label>
                        <input ng-model="task.quantity" type="text" id="quantity" class="form-control"/>
                    </div>

                    <div class="form-group">
                        <label for="item">Item</label>
                        <input ng-model="task.item" type="text" id="item" class="form-control autocomplete"/>
                    </div>                   

                </div>
                <div class="modal-footer">
                    <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
                    <button type="button" class="btn btn-primary" ng-click="addTask()">Save</button>
                </div>
            </div>
        </div>
    </div>
<div class="form-group">
    <label for="item">Items</label>
    <input ng-model="task.item" type="text" ng-keyup="$event.keyCode == 13 && addTask()" id="item" class="form-control autocomplete"/>
</div>
指令:

app.directive('commonKeyEnter', function() { return { restrict: 'A', scope: { commonKeyEnter: '&' }, link: function(scope, element, attrs) { element.bind('keyup keypress', function(event) { if (event.which === 13) { scope.$apply(function() { scope.$eval(attrs.commonKeyEnter); }); event.preventDefault(); } }); } }; });
<div class="form-group">
    <label for="item">Items</label>
    <input ng-model="task.item" type="text" ng-keyup="$event.keyCode == 13 && addTask()" id="item" class="form-control autocomplete"/>
</div>
应用程序指令('commonKeyEnter',函数(){ 返回{ 限制:“A”, 范围:{ commonKeyEnter:“&” }, 链接:函数(范围、元素、属性){ 元素绑定('keyup keypress',函数(事件){ if(event.which==13){ 作用域$apply(函数(){ 范围$eval(属性commonKeyEnter); }); event.preventDefault(); } }); } }; }); HTML:

<div class="form-group">
    <label for="item">Items</label>
    <input ng-model="task.item" type="text" ng-keyup="$event.keyCode == 13 && addTask()" id="item" class="form-control autocomplete"/>
</div>
我不确定“keyup”和“keypress”是否适用于div,您可以尝试使用表单中的所有输入元素:

<input ng-model="task.item" common-key-enter="addTask()" type="text" id="item" class="form-control autocomplete"/>
<div class="form-group">
    <label for="item">Items</label>
    <input ng-model="task.item" type="text" ng-keyup="$event.keyCode == 13 && addTask()" id="item" class="form-control autocomplete"/>
</div>
指令:

app.directive('commonKeyEnter', function() { return { restrict: 'A', scope: { commonKeyEnter: '&' }, link: function(scope, element, attrs) { element.bind('keyup keypress', function(event) { if (event.which === 13) { scope.$apply(function() { scope.$eval(attrs.commonKeyEnter); }); event.preventDefault(); } }); } }; });
<div class="form-group">
    <label for="item">Items</label>
    <input ng-model="task.item" type="text" ng-keyup="$event.keyCode == 13 && addTask()" id="item" class="form-control autocomplete"/>
</div>
应用程序指令('commonKeyEnter',函数(){ 返回{ 限制:“A”, 范围:{ commonKeyEnter:“&” }, 链接:函数(范围、元素、属性){ 元素绑定('keyup keypress',函数(事件){ if(event.which==13){ 作用域$apply(函数(){ 范围$eval(属性commonKeyEnter); }); event.preventDefault(); } }); } }; }); HTML:

<div class="form-group">
    <label for="item">Items</label>
    <input ng-model="task.item" type="text" ng-keyup="$event.keyCode == 13 && addTask()" id="item" class="form-control autocomplete"/>
</div>
我不确定“keyup”和“keypress”是否适用于div,您可以尝试使用表单中的所有输入元素:

<input ng-model="task.item" common-key-enter="addTask()" type="text" id="item" class="form-control autocomplete"/>
<div class="form-group">
    <label for="item">Items</label>
    <input ng-model="task.item" type="text" ng-keyup="$event.keyCode == 13 && addTask()" id="item" class="form-control autocomplete"/>
</div>

我找到了一个解决方案:

<div class="form-group">
    <label for="item">Items</label>
    <input ng-model="task.item" type="text" ng-keyup="$event.keyCode == 13 && addTask()" id="item" class="form-control autocomplete"/>
</div>

项目

我找到了一个解决方案:

<div class="form-group">
    <label for="item">Items</label>
    <input ng-model="task.item" type="text" ng-keyup="$event.keyCode == 13 && addTask()" id="item" class="form-control autocomplete"/>
</div>

项目

您到底想做什么?您到底想做什么?非常感谢您的努力!不幸的是,它还没有完全起作用。我将app.directive代码复制到app变量实例化下的app.js中,并将common key enter=“addTask()”复制到模式对话框div和表单组输入语句中。我还需要我的javascript代码吗?我还需要注意什么吗?嗨@br0ken.pipe,你的控制台有错误吗?尝试console.log指令中的内容,可能是因为指令运行后模式渲染。非常感谢您的努力!不幸的是,它还没有完全起作用。我将app.directive代码复制到app变量实例化下的app.js中,并将common key enter=“addTask()”复制到模式对话框div和表单组输入语句中。我还需要我的javascript代码吗?我还需要注意什么吗?嗨@br0ken.pipe,你的控制台有错误吗?尝试console.log指令中的某些内容,可能是因为运行了指令后的模式呈现。