14

我正在使用 typeahead 的 UI Bootstrap 组件,我想强制选择来验证我的表单。

是否可以将其配置为在typeahead-editable设置为 false 并且用户输入“错误”值时将输入设置为无效,或者我应该为此编写指令(但如何)?

4

2 回答 2

19

来自http://angular-ui.github.io/bootstrap/typeahead指令已经支持将输入限制为匹配项(换句话说,人们可以绑定到仅在 typeahead 弹出窗口中作为匹配项可用的模型值)。您可以通过简单地设置属性来做到这一点。typeahead-editable='false'

请注意,将此属性设置为false不会阻止人们输入无效值它只会确保相应的输入被标记为无效,并且提供的值未绑定到模型。

于 2013-08-08T17:38:21.530 回答
-1

代表 OP 回答:

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;
            });
        }
    };
});
于 2020-12-30T09:37:34.743 回答