我编写了一个timepicker
指令,可以输入时间,如果按下Enter键,该值将以特定的时间格式进行格式化。同时输入将会失去焦点。这一切都很好运行。
问题在于,表单中还有一些带有ng-click
指令的按钮。如果我按下Enter键,ng-click
指令的操作也会被调用,尽管我运行了e.preventDefault();
这是我的指令代码:
$element.keyup(function(e) {
var keyCode = e.keyCode || e.witch;
if (keyCode == 13) {
$element.blur();
// Do some more stuff here
e.preventDefault();
return false;
}
});
而HTML代码为:
<button class="btn btn-default" ng-click="openModal()">
<i class="icon-info-sign"></i>
</button>
有趣的是,timepicker
指令按预期工作,并且还会调用 openModal()
函数。我该如何防止这种情况发生?