您好我正在开发一个Web应用程序在angularjs中。我有一个复选框,接下来我有一个下拉菜单。如果我选中复选框,那么我想让下拉菜单为必填项。 Wheneer我做以下,Angularjs ng如果需要的字段验证
我点击复选框,下拉需要验证会发生。 每当我取消选中复选框仍然会发生我需要的验证。我只想在复选框被选中时才对下拉菜单进行必要的验证。
下面是我的复选框。
<div class="inputblock">
<label class="inputblock-label">{{ 'Military' | translate }}</label>
<label class="military">{{ 'Military' | translate }}</label>
<input type="checkbox" name="Military" placeholder="{{ 'Military' | translate }}" ng-model="Military" ng-change="statechanged(Military)">
</div>
下面是我的下拉列表。
<div class="inputblock" ng-class="{ 'has-error' : ((form3.$submitted && form3.rank.$invalid) || (form3.rank.$invalid && form3.rank.$dirty))}">
<label class="inputblock-label">{{ 'Rank' | translate }}</label>
<div ng-if="rankrequired==true">
<span class="ang-error" style="color:#fff" ng-show="form3.rank.$invalid && form3.rank.$error.required && form3.rank.$dirty">*{{'Required' | translate}}</span>
</div>
<select id="rank" name="rank" ng-model="user.rank" ng-options="user.ID as user.Rank for user in rankList" required>
<option value="" label="rank">{{ 'Rank' | translate }}</option>
</select>
</div>
以下是我的javascript代码。
$scope.statechanged = function (Military) {
if (Military == true)
{
enablerankdropdown();
$scope.rankrequired = function() {
return true;
};
}
else
{
$scope.user.rank = $scope.rankList[0].value;
disablerankdropdown();
$scope.rankrequired = function() {
return false;
};
}
}
每当我取消选择复选框,我不想有必要的字段验证程序。现在我在取消选中后也得到了所需的字段验证器。我可以知道这是为什么发生在这里吗?我可以帮助解决上述问题吗?任何帮助,将不胜感激。谢谢。
您可以使用'ng-required = Military'。 – SaiUnique