javascript - 使用 angularJS 单击 Internet Explorer 中的输入表单功能

标签 javascript html angularjs internet-explorer default

我在 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 中永远不会触发。有解决方法吗?

我只需要一种方法,当在表单字段内的输入上按“enter”时触发单击事件。有没有办法让此功能成为 Internet Explorer 中的默认功能?

最佳答案

在表单内的输入上按 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>

关于javascript - 使用 angularJS 单击 Internet Explorer 中的输入表单功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30741374/

相关文章:

javascript - JavaScript 中的命名空间技术,推荐吗?性能?需要注意的问题?

javascript - Google Chart 仪表的重复颜色

javascript - 无法使用 setTimout 在小书签中不起作用

html - 如何使 NAV 与悬停内联

jquery - 为什么 jQuery 不想将使用 Ajax 插入新页面的 html 片段设置样式

javascript - 如何使用一个提交按钮在一个页面中提交 2 个表单

javascript - 通过使用resolve或reject或Promisify(bluebird)进行 promise

javascript - Jasmine ,AngularJS : Unit test a function which returns a value after timeout

javascript - 在 $ 'Ng-If' ).change 或 angularfire $add 上使用 "breaks"('#x' 程序

javascript - 单击 div 时如何播放简单的声音片段(如按钮单击)