14

typeahead の UI Bootstrap コンポーネントを使用しており、選択を強制してフォームを検証したいと考えています。

が false に設定されていて、ユーザーが「悪い」値を入力したときに入力を無効に設定するように構成することは可能typeahead-editableですか?

4

2 に答える 2

19

http://angular-ui.github.io/bootstrap/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 に答える