Подтвердить что ты не робот

Установить недопустимый ввод, если typeahead-editable false

Я использую компонент boottrap для ввода-вывода typeahead, и я хочу принудительно отбирать для проверки моей формы. Можно ли настроить его для установки недопустимого ввода, когда для параметра "typeahead-editable" установлено значение false, и пользователь вводит "плохое" значение, или я должен написать директиву для этого (но как?)?

Спасибо

ОБНОВЛЕНИЕ 2013-08-09 9:54: Что вы думаете о следующем решении:

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;
            });
        }
    };
});
4b9b3361

Ответ 1

Директива typeahead http://angular-ui.github.io/bootstrap/ уже поддерживает ограничение ввода совпадений (другими словами, люди могут привязываться только к модели значения, доступные в качестве совпадений в всплывающем окне typeahead). Вы можете сделать это, просто установив атрибут typeahead-editable='false'.

Обратите внимание, что установка этого атрибута в false не помешает людям вводить недопустимые значения. Он просто удостоверит, что соответствующий вход отмечен как недействительный, и предоставленное значение не привязано к модели.