У меня есть форма с select
и кнопка, которая активируется при подтверждении формы. Он отлично работает с полем ввода. Тем не менее, это $ touched, похоже, не работает должным образом для выбора. Кнопка активируется даже при касании. При выборе троса предполагается, что он окажется недействительным. Он становится недействительным, и кнопка отключается, когда я выбираю параметр, а затем выбираю значение по умолчанию. Я хочу, чтобы он работал, когда был выбран косвенный выбор, и указатель мыши ушел. Вот мой HTML:
<form role="form" name="frameVersionEditor" novalidate class="form-horizontal col-md-12">
<div class="row">
<div class="form-group col-lg-2 col-lg-push-1" ng-class="{'has-error' : frameVersionEditor.distributor.$invalid && frameVersionEditor.distributor.$touched}">
<label>Distributor</label>
<select name="distributor" data-ng-model="myDistr" data-ng-options="distributors.key as distributors.value for distributors in distributorOptions" class="form-control" required>
<option value="">Select Distributor</option>
</select>
<span ng-show="frameVersionEditor.distributor.$error.required && frameVersionEditor.distributor.$touched" class="help-block">Please select a distributor</span>
</div>
</div>
</form>
<button data-ng-click="generate()" ng-disabled="frameVersionEditor.$invalid">Generate</button>
Вот мой контроллер:
var myApp = angular.module('myApp',[]);
myApp.controller('myController', ['$scope', function($scope) {
$scope.myDistr = [];
$scope.distributors =
[
{
'key': '0',
'value': 'A'
},
{
'key': '1',
'value': 'B'
},
{
'key': '2',
'value': 'C'
}
];
$scope.generate = function() {
//Do something
};
}]);
У меня такая же проблема – OMGPOP
«$ touched» означает, что элемент управления был сфокусирован и теперь размыт (т. Е. Больше не фокусируется на элементе управления). Нет необходимости выбирать параметр по умолчанию или что-то еще ... Такое же поведение происходит с ''. Если вы хотите другое поведение (и не совсем ясно, что это такое), тогда вам нужно реализовать его с помощью настраиваемой директивы./ @OMGPOP –