[英]Using $dirty in angularjs in order to check whenever a form is being edited
[英]Making AngularJS form page dirty using JavaScript
我想通过使用JavaScript代码来使AngularJS表单字段变脏,
这是HTML代码
<!DOCTYPE html> <html> <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js"></script> <body ng-app=""> <p>Try writing in the input field:</p> <form name="myForm"> <input name="myInput" ng-model="myInput" required> </form> <p>The input's valid state is:</p> <h1>{{myForm.myInput.$valid}}</h1> </body> </html>
我尝试使用
document.querySelector('input[name="myInput"]').value="123",
单击,集中注意力,但似乎没有一个起作用/可以覆盖它。 请指导我如何不使用AngularJS函数以及使用普通JavaScript来执行此操作。
我想将输入的有效状态更改为true
要从控制台与angular App进行交互,您需要使用
var scope = angular.element(document.getElementById('yourElementId')).scope();
这将为您带来所需的范围,然后将元素设置为脏,您可以使用
scope.myForm.myInput.$setViewValue(scope.myForm.myInput.$viewValue);
采用:
var $body = angular.element(document.body);
var $scope = $body.data().$scope;
$scope.myForm.myInput.$setDirty();
$scope.$apply();
setTimeout(function() { var $body = angular.element(document.body); var $scope = $body.data().$scope; $scope.myForm.myInput.$setDirty(); $scope.$apply(); }, 1000);
<!DOCTYPE html> <html> <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js"></script> <body ng-app=""> <p>Watch dirty state flash from false to true</p> <form name="myForm"> <input name="myInput" ng-model="myInput" required> </form> <p>The input dirty state is:</p> <h1>{{myForm.myInput.$dirty}}</h1> </body> </html>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.