【问题标题】:Using angularJS click on enter form functionality in Internet Explorer使用 angularJS 在 Internet Explorer 中单击输入表单功能
【发布时间】:2015-06-10 03:59:48
【问题描述】:

我在 angularJS 中有一个这样的表单:

<form>
    <div class="row form-group">
      <div class="col-xs-4">
        <label>Product name:</label>
      </div>
      <div class="col-xs-8">
        <input ng-model="vm.name" ng-disabled="vm.product.name">
      </div>
    </div>
    <button ng-hide="1" ng-click="vm.addName()"></button>
  </form>

这个想法是,当用户输入名称时,表单会锁定它(在 addName() 中)并执行 API 调用来搜索相关数据。在 Firefox 和 chrome 中,这可以完美运行,但在 Internet Explorer 中单击事件永远不会触发。有解决办法吗?

我只需要一种方法来在表单域内的输入上按下“输入”时触发点击事件。有没有办法将此功能设为 Internet Explorer 中的默认功能?

【问题讨论】:

  • 使用表单提交代替按钮点击,并使其成为提交按钮。
  • 你太棒了,谢谢。

标签: javascript html angularjs internet-explorer default


【解决方案1】:

在表单内的输入上按 Enter 时的默认行为是提交表单或单击提交按钮,具体取决于浏览器。如果有一个没有类型且没有提交按钮的按钮,则该按钮可能被浏览器更改为提交按钮。

要获得一致的结果,请将您的按钮更改为提交按钮并将 addName 调用移至表单的提交事件。

<form ng-submit="vm.addName()">
  <div class="row form-group">
    <div class="col-xs-4">
      <label>Product name:</label>
    </div>
    <div class="col-xs-8">
      <input ng-model="vm.name" ng-disabled="vm.product.name">
    </div>
  </div>
  <button ng-hide="1" type="submit"></button>
</form>

【讨论】:

  • 提交按钮使用此设置可能是可选的,我建议在删除之前在目标浏览器中对其进行测试。
  • 是的,我已经在 chrome、safari、firefox、IE、opera 和 konquerer 中测试过它,并且它适用于所有这些!我会留下按钮,谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-30
相关资源
最近更新 更多