23

我写了一个timepicker指令,我可以在其中输入时间,如果我点击Enter了该值,它将被格式化为特定的时间格式。输入也会模糊。这一切都很好。

问题是我在ng-click指令的表单中也有一些按钮。如果我点击Enterng-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()还将调用该函数。我该如何防止这种情况?

4

1 回答 1

48

您的按钮需要一个type="button". 默认情况下,type="submit"这就是在表单提交时调用它的原因。

当您按下回车键时,您似乎还需要阻止表单提交,但这是一个不同的问题。

于 2013-11-08T23:23:04.687 回答