【问题标题】:display non matching dropdown selection list while typing special character like ! and @输入特殊字符时显示不匹配的下拉选择列表!和 @
【发布时间】:2016-06-16 16:28:27
【问题描述】:

在输入 !!(两次!或四次!)和 !@(组合)时,角度引导 ui 打字头显示下拉结果时遇到问题。我尝试添加过滤器,但过滤器无法正常工作,只显示缓存中的值。我想如果用户输入任何特殊字符,它不会显示任何建议

笨蛋 https://plnkr.co/edit/E0IiqNTsgp0sP5Yggyau?p=preview

在控制器中过滤

 $scope.startsWith = function (state, viewValue) {
            //var pattern = new RegExp(/[~`!@#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/); //unacceptable chars
            var pattern = /^[a-zA-Z ]*$/;
            if ((pattern.test(viewValue))) {
                return true; 
           }
        }
  $scope.states= ['Alabama','california','Texas'];

html

<input type="text" uib-typeahead="state for state in states | filter:$viewValue:startsWith | limitTo:3" autocomplete="off" >

当使用任何时间特殊字符 iike 时,我应该做些什么改变!或者 !!!!或 !@ 或任何类似防止显示不匹配结果的东西。

我尝试了所有其他方法以使其正常工作,但没有。如果有人能立即回复,不胜感激

【问题讨论】:

    标签: angularjs angular-ui-bootstrap angular-bootstrap


    【解决方案1】:

    var pattern = /^[a-zA-Z]*$/; 应该可以解决问题,只匹配单词。也许您需要完全阻止用户输入特殊字符,例如:

    <input type="text" pattern="[A-Za-z]" />
    

    【讨论】:

    • 我尝试了 ng-pattern 和 pattern。它不起作用,请检查附加的 plunker 链接。我快速编辑但不工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多