点击输入时阻止点击动作

tsc*_*ela 23 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;
  }
});
Run Code Online (Sandbox Code Playgroud)

和HTML代码:

<button class="btn btn-default" ng-click="openModal()">
  <i class="icon-info-sign"></i>
</button>
Run Code Online (Sandbox Code Playgroud)

有趣的是,该timepicker指令按预期工作,并且openModal()将调用该函数.我该如何防止这种情况?

Che*_*try 48

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

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