如何通知 AngularJS 表单已由 jQuery 外部填写?

2024-05-06

我在 AngularJS 中有一个页面,其中有一个包含一些字段的表单。加载该页面后,我想要一个书签,单击该书签可根据配置文件中的数据填充字段。正在使用一个 JS 文件,该文件使用 jquery 来填充表单中的数据

当我做$("#id").val('abcd'),该字段将填充文本abcd,但 angularjs 认为该表单仍然无效。类ng-pristine ng-invalid仍然保留在元素上。我尝试删除 using jquery 的removeClass()并添加ng-dirty ng-valid类使用addClass()但表单的状态仍然无效。

如何让 angularjs 知道表单字段已填充并且表单有效?


The ng-model控制器监听'change' event.

<input id="id" ng-model="$ctrl.text" />

要从 jQuery 触发它:

$("#id").val("abcd").trigger("change");

这将设置输入的值并触发ngModelController更新 AngularJS 框架中的模型。

The DEMO

$(function() {
  $("#bt").on("click", function() {
    $("#id").val("abcd").trigger("change");
  });
})
<script src="//unpkg.com/jquery"></script>
<script src="//unpkg.com/angular/angular.js"></script>
<body ng-app>
    <input id="id" ng-model="$ctrl.text" /><br>
    text={{$ctrl.text}}<br>
    <button id="bt">Click me</button>
</body>

Note

加载 jQuery 库很重要beforeAngularJS 库。

来自文档:

To use jQuery,只需确保它在之前加载angular.js file.

有关更多信息,请参阅AngularJS angular.element API 参考 https://docs.angularjs.org/api/ng/function/angular.element.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何通知 AngularJS 表单已由 jQuery 外部填写? 的相关文章

随机推荐