Javascript 功能通过点击和键盘输入
我希望通过单击并按Enter键在对话框中执行Javascript函数。第一个有效。不幸的是,我无法正确实现函数(“Save”按钮的addTask()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
<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">×</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指令中的某些内容,可能是因为运行了指令后的模式呈现。