angularjs - 如何转换输入元素,因为列表元素

时间:2015-11-18 10:58:47

标签: javascript html angularjs

我正在尝试在文本元素中创建一个下拉列表。我也有这些目标:

  1. 在输入用户时,月份也需要在列表中重置(过滤)。 (例如:用户类型为jan,所有月份都需要在列表中过滤相同的字母)。

  2. 当用户没有从列表中选择任何内容时,我需要显示错误。

  3. 用户不应在文本字段中手动删除月份,也不应在文本字段中自行填写。

  4. 文本字段中没有列表值,因此需要禁用表单。

  5. 如何搞定这一切?

    我的代码:

    var app = angular.module('plunker', []);
    
    app.controller('MainCtrl', function($scope) {
      $scope.months = [
                    "January", "February", "March", 
                    "April", "May", "June", "July",  
                    "August", "September", "October",
                    "November", "December"
                ];
    
      $scope.defaultMonth = 'Select a Month';
    
      $scope.showList = false;
    
      $scope.setMonth = function ( month ) {
        console.log( month );
        $scope.defaultMonth = month;
        $scope.showList=false;
      }
    
    });
    

    Here is my try

1 个答案:

答案 0 :(得分:1)

对于您的第一个问题,您可以在输入中使用过滤器:

ng-repeat="month in months | filter:defaultMonth"

您的第二个问题可以通过在您的输入中添加required并将其添加到您的HTML中来解决:

<span ng-show="monthForm.selectMonth.$error.required">Please enter something!</span>

但是您的问题与第3号问题相矛盾。文本输入应过滤用户输入,但用户不应该自己填写输入?问题4我也不明白。请澄清......

my edited plunker