gpt4 book ai didi

angularjs - 如何简化表单验证?

转载 作者:行者123 更新时间:2023-12-03 09:47:30 24 4
gpt4 key购买 nike

下面的代码似乎可以很好地进行基本的必需表单验证。

当字段脏 + 无效时,表单会显示红色的 Name is required 消息,很棒!如果该字段是脏的 + 有效的,则显示消息。

但是对于表单中的每个字段重复此代码是一团糟:

<form name="myForm">
<div class="control-group"
ng-class="{error: myForm.name.$invalid && myForm.name.$dirty}">
<label>Name:</label>
<input type="text" name="name" ng-model="user.name" required/>
<span ng-show="myForm.name.$invalid && myForm.name.$dirty"
class="help-inline">Name is required</span>
<span ng-show="myForm.names.$valid && myForm.names.$dirty">Great!</span>
</div>
</form>

我希望能够指定 ng-showng-class属性以更简单的方式。

最佳答案

一种方法是将验证表达式抽象为范围方法:

PLUNKER

HTML

<div class="control-group" ng-class="{error: isInvalid('name')}">
<label>Name:</label>
<input type="text" name="name" placeholder="Name" ng-model="user.name" required/>
<span ng-show="isInvalid('name')" class="help-inline">Name is required</span>
<span ng-show="isValid('name')">Great!</span>
</div>

Controller

function Ctrl($scope) {
$scope.isInvalid = function(field){
return $scope.myForm[field].$invalid && $scope.myForm[field].$dirty;
};

$scope.isValid = function(field){
return $scope.myForm[field].$valid && $scope.myForm[field].$dirty;
};

}

关于angularjs - 如何简化表单验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15022180/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com