Я работаю над угловым приложением, и мне нужно было поместить шаблонную проверку на элемент выбора. Просто использование ng-pattern при выборе не работает. Поэтому я создал скрытый ввод с той же моделью с ng-образцом на скрытом входе, который тоже не работал. Поэтому я создал текстовый ввод с ng-образцом и спрятал его через css. Что работает красиво.Меньшая работа вокруг ng-pattern on Select
Есть ли меньшая работа для этого?
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>
Почему вы добавили, что 'ng-pattern' какой шаблон вы хотите ограничить? –
Я не хочу, чтобы мой элемент select имел значение «Пожалуйста, выберите», выбранное во время отправки формы. –
Посмотрите на ответ, который я добавил .. –