点击输入时阻止点击动作

时间:2013-11-08 22:54:53

标签: jquery angularjs

我已经编写了一个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()函数。我该如何防止这种情况?

1 个答案:

答案 0 :(得分:48)

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

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