[英]Angular material md-select empty value validation not working
在md-select中,我添加了一個空的md-option項,並且該選擇字段是必填字段。 但是,當我選擇“選擇一個”值為空的項目時,驗證不起作用。
Codepen: http ://codepen.io/anon/pen/ygrJLG
<div ng-controller="AppCtrl" ng-cloak="" layout="column" layout-align="center center" layout-padding="" class="selectdemoValidations" ng-app="MyApp">
<form name="myForm">
<div layout="row" layout-align="start" flex="">
<md-input-container flex>
<label>Favorite Color</label>
<md-select name="favoriteColor" ng-model="favoriteColor" required="" >
<md-option value=''>Choose One</md-option>
<md-option ng-value=color ng-repeat="color in colors">{{color}}</md-option>
</md-select>
<div class="errors" ng-messages="myForm.favoriteColor.$error">
<div ng-message="required">Required</div>
</div>
</md-input-container>
</div>
<div layout="row" layout-align="start">
<md-checkbox ng-model="myForm.$invalid" disabled="">Form Invalid</md-checkbox>
<md-checkbox ng-model="myForm.$dirty" disabled="">Form Dirty</md-checkbox>
<md-checkbox ng-model="myForm.$submitted" disabled="">Form Submitted</md-checkbox>
<md-checkbox ng-model="myForm.favoriteColor.$touched" disabled="">Select Touched</md-checkbox>
</div>
<div layout="row" layout-align="end" flex="">
Selected Color is {{favoriteColor}}
<md-button ng-click="clearValue()" ng-disabled="!favoriteColor">Clear</md-button>
<md-button ng-click="save()" class="md-primary">Save</md-button>
</div>
</form>
</div>
您可以使用以下方法修復它:
$scope.$watch('favoriteColor', function(val)
{
if (!val) $scope.favoriteColor = null;
});
為什么? 因為null
和undefined
之間存在差異:
null =設置為空值的值
未定義=值尚未初始化
只需通過以下方式禁用“選擇一個”選項:
<md-option ng-value disabled>Choose One</md-option>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.