Ho un modulo con select
e un pulsante attivato quando il modulo è convalidato. Funziona bene con la casella di input. Tuttavia, il $ toccato non sembra funzionare correttamente per la selezione. Il pulsante è abilitato anche quando si tocca la selezione. Dovrebbe girare invalido quando viene toccata la selezione. Diventa non valido e il pulsante è disabilitato quando seleziono un'opzione, quindi seleziona il valore predefinito. Voglio che funzioni quando viene toccata la selezione e userò il puntatore del mouse. Ecco il mio 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>
Ecco il mio controller:
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
};
}]);
Ho lo stesso problema – OMGPOP
"$ touched" significa che un controllo era focalizzato e ora sfocato (ovvero non si concentra più sul controllo). Non è necessario selezionare un'opzione predefinita o qualsiasi altra cosa ... Lo stesso comportamento si verifica con ''. Se si desidera un comportamento diverso (e non è chiaro in modo preciso quale sia la domanda), è necessario implementarlo tramite una direttiva personalizzata./ @OMGPOP –