有没有办法删除角度材质组件(如checkbox,select和datepicker)和enter keypress事件之间的交互?
<md-checkbox>
check
</md-checkbox>
这是一个真实世界的Plunker示例。
任何帮助将不胜感激。
感谢。
答案 0 :(得分:2)
在ng-keydown上阻止KeyPress
您可以使用以下HTML标记阻止Enter keypress:
<md-checkbox ng-keydown="preventEnter($event)">
check
</md-checkbox>
preventEnter
函数看起来像(在Controller中声明):
function preventEnter(event) {
if (event.keyCode == 13) { // enter keyCode
event.preventDefault();
}
}
自定义指令,以防止Enter keypress
如果您想在您的应用中更频繁地执行此操作,您可以根据需要使用自定义指令:
app.directive('myPreventEnter', function() {
return function(scope, element, attrs) {
element.bind("keydown", function(event) {
if(event.keyCode === 13) {
event.preventDefault();
}
});
};
然后您的所有输入都是:
<md-checkbox my-prevent-enter>...</md-checkbox>
答案 1 :(得分:1)
如果keyCode == 13
,则为默认事件添加EventListener和peventvar checks = [...document.getElementsByTagName("md-checkbox")];
checks.forEach(function(c){
c.addEventListener("keydown",
function(e) {
if(e.keyCode === 13) e.preventDefault();
},
false);
});