RSK*_*KMR 4 javascript validation angularjs
我有这样的示例代码:
html代码:
<body ng-controller="MainCtrl">
<form name="myForm">
<input name="myText" type="text" name="test" ng-model="mytext" required />
<button ng-click="save()" ng-disabled="myForm.$invalid">Save</button>
</form>
</body>
Run Code Online (Sandbox Code Playgroud)
JS代码:
var app = angular.module('angularjs-starter', []);
app.controller('MainCtrl', function($scope) {
$scope.name = 'World';
$scope.save = function(){
//logic or http method
console.log("Test");
}
});
Run Code Online (Sandbox Code Playgroud)
在此链接中附上代码:单击此处
逻辑:
注意:这里我只附加了一个输入,但我有多个输入字段。另外,在保存功能中,我将逻辑数据保存到数据库中。
您可以使用$pristine来确定表单是否有任何更改,然后才启用按钮:
<body ng-controller="MainCtrl">
<form name="myForm">
<input name="myText" type="text" name="test" ng-model="mytext" required />
<button ng-click="save(myForm)" ng-disabled="myForm.$invalid || myForm.$pristine">Save</button>
</form>
</body>
Run Code Online (Sandbox Code Playgroud)
注意如何$pristine使用ng-disabled:
ng-disabled="myForm.$invalid || myForm.$pristine"
Run Code Online (Sandbox Code Playgroud)
在这种情况下,如果表单无效或表单没有更改,则按钮将被禁用。
如果您使用这种方法,您还需要在保存数据后将表单设置为原始状态。您可以使用方法$setPristine:
$scope.save = function(myForm) {
// set form to pristine
myForm.$setPristine();
}
Run Code Online (Sandbox Code Playgroud)
请注意,有一个表单参数用于将表单传递给该方法。在 HTML 中,您还需要将此参数作为以下内容的一部分传递ng-click:
ng-click="save(myForm)"
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请查看FormController 的文档。
| 归档时间: |
|
| 查看次数: |
7820 次 |
| 最近记录: |