您好我正在開發一個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