我正在开发一个角度应用程序,我需要在选择元素上进行模式验证。仅在 select 上使用 ng-pattern 不起作用。所以我创建了一个具有相同模型的隐藏输入,在隐藏输入上使用 ng-pattern,这也不起作用。所以我用 ng-pattern 创建了一个文本输入并通过 css 隐藏它。效果很好。
有没有更小的解决方法?
EDIT1:我想我应该补充一点,这些选项是由ng-options
EDIT2:相应地编辑了代码片段以显示我真正想要的。
function formCtrl($scope) {
$scope.options = ['Please Select','Value 1','Value 2'];
$scope.price = 'Please Select';
$scope.onSubmit = function (form) {
console.log(form.$valid);
}
}
.show-none {
display:none;
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app ng-controller="formCtrl">
<form name="myForm" ng-submit="onSubmit(myForm)">
<select ng-model="price" ng-options="o as o for o in options"></select>
<input type="text" class="show-none" ng-pattern="/^(?!.*(Please Select))/" ng-model="price" name="price_field"> <span ng-show="myForm.price_field.$error.pattern">Not a valid option!</span>
<input type="submit" value="submit" />
</form>
</div>