2013-08-08 11 views
12

Używam składnika Bootstrap interfejsu użytkownika i chcę wymusić wybór w celu sprawdzenia poprawności mojego formularza. Czy można go skonfigurować, aby ustawić wejście niepoprawne, gdy "typeahead-editable" jest ustawione na false i użytkownik wprowadza "złą" wartość lub powinienem napisać dyrektywę dla tego (ale jak?)?Ustaw wejście niepoprawne, gdy typ -head-editable jest fałszem

Dzięki

UPDATE 09.08.2013 09:54: Co sądzisz o następującym roztworem:

 
var formValidatorsModule = angular.module('app.validator.formValidator', []); 

formValidatorsModule.directive('typeaheadForceSelection', function() { 
    return { 
     require : 'ngModel', 
     link : function(scope, elm, attrs, ctrl) { 
      ctrl.$parsers.push(function(viewValue) { 
       if (viewValue == undefined) { 
        ctrl.$setValidity('typeaheadForceSelection', false); 
       } else { 
        ctrl.$setValidity('typeaheadForceSelection', true); 
       } 
       return viewValue; 
      }); 
     } 
    }; 
}); 
+0

Ten błąd został naprawiony od roku 2016, lol ... patrz: plunker: http://plnkr.co/edit/NtGXL7uPLYKCHESnZyxs?p=preview –

Odpowiedz

17

Dyrektywa z http://angular-ui.github.io/bootstrap/typeahead już wsparcia dla ograniczania nakładów na mecze (innymi słowy, ludzie mogą łączyć się z modelowymi wartościami dostępnymi jako dopasowania w wyskakującym okienku nagłówkowym). Możesz to zrobić, ustawiając po prostu atrybut typeahead-editable='false'.

Należy pamiętać, że ustawienie tego atrybutu na false spowoduje , a nie uniemożliwienie wpisywania nieprawidłowych wartości. Po prostu upewni się, że odpowiednie dane wejściowe są oznaczone jako niepoprawne, a podana wartość nie jest powiązana z modelem.

+0

Wiem, że opcja edycji do wartości false umożliwia użytkownikowi wprowadzenie dowolnej wartości. Po prostu nie ustawi modelu. To, co znalazłem, jest dziwne, że pole wejściowe nie jest "nieprawidłowe", gdy użytkownik wprowadzi wartość nie do wybrania. : [Przykład] (http://plnkr.co/edit/KbLOIRKHK5PdEIPvBCFV?p=preview). Lub nie rozumiem czegoś ... –

+0

Aktualizuję moje "rozwiązanie" –

+0

@JulienMeyer Widzę - chciałbyś również ustawić odpowiednio flagę poprawności, prawda? Brzmi rozsądnie, możesz otworzyć problem w https://github.com/angular-ui/bootstrap/issues?state=open –

Powiązane problemy