在IE8中按Enter键意外触发了ng-click

时间:2014-11-13 08:46:09

标签: javascript angularjs internet-explorer internet-explorer-8 cross-browser

我有一个简单的ng-click按钮嵌套在ng-repeat中,当前页面中没有<form>

<tr ng-repeat="product in catalog | limitTo: total track by $index" ng-class="{highlight: product==selected}">
    <td class="highlight-hide">
        <div ng-if="canDoSelfOrdering">
            <button class="btn btn-mini" ng-click="callPricing(product)">Price & Order</button>
        </div>
    </td>
    <!-- other td -->
</tr>

当目录阵列更新并且用户按下ENTER而不关注任何输入。

。最后一个按钮元素ng-click="callPricing(product)"会无意中触发。

我在点击Enter键之前尝试了看document.activeElement <body>

如何防止这种情况?

1 个答案:

答案 0 :(得分:4)

Internet Explorer documentation表示在IE8标准模式下,默认按钮值为submit。

  

如果在用户查看表单时按下了ENTER键   包含一个提交按钮,表单已提交。

虽然你没有提交任何表格,我猜IE8不会检查。只需尝试将您的按钮类型明确地写为按钮

<button type="button" class="btn btn-mini" ng-click="callPricing(product)">Price & Order</button>