我有一个表单,当第一个字段被更新时会更新另一个字段。更改事件经过一段时间的延迟后,另一个字段将更新,如debounce属性中的ng-model-options条目所指定。

我的问题是,提交表单时,包括在第一个字段中键入Enter键时,我希望另一个字段尽快更新(即,延迟为0)。

当前,当快速键入并按Enter时,由于change延迟,重复字段不会以最新值提交,尽管我尝试使用submit延迟。

在提交表单之前,如何按Enter键尽快更新重复的字段值?

<html ng-app>
  <head>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
  </head>
  <body>

    <form action="" method="POST">
      <div>
        <label>Name:</label>
        <input
          type="text"
          ng-model="yourName"
          ng-model-options="{ updateOn: 'submit default', debounce: { submit: 0, default: 2000 } }"
          placeholder="Enter a name here"
        >
      </div>

      <hr>

      <div>
        <label>Duplicated field:</label>
        <input name="duplicatedField" type="text" ng-value="yourName">
      </div>

      <button type="submit">Submit</button>
    </form>
  </body>
</html>

最佳答案

看看https://docs.angularjs.org/api/ng/directive/ngSubmit。它应该补偿您对ng-model产生的任何反跳。

您也可以直接提交yourName作为帖子的另一部分。还是重复的字段在更新时与yourName的数据不同?这样,重复的字段仅在前面显示,您应该始终提交正确的yourName。

关于angularjs - AngularJS-提交表单时如何忽略反跳?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34808680/

10-17 02:29