我在 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(使用前将#替换为@)