javascript - angularjs - 如何将输入元素转换为列表元素

标签 javascript html angularjs

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

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

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

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

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

如何获得这一切?

我的代码:

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

最佳答案

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

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 )

关于javascript - angularjs - 如何将输入元素转换为列表元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33778248/

相关文章:

javascript - React Routing Menu - 数据处理最佳实践

javascript - 将 pxloader 与 require.js 一起使用

javascript - JS 通过绑定(bind)传递参数到对象内部函数以访问对象范围内的特定变量的最佳实践

python - BeautifulSoup findAll 在选择类时返回空列表

javascript - 启用/禁用温泉按钮

javascript - 如何让我的导航栏位于每个 HTML 页面的顶部(避免复制相同的代码)

angularjs - 有没有一种简单的方法可以使用 ngMockE2E 将 HTTP 请求列入白名单

javascript - AngularJS 我在哪里可以访问已加载 Controller 的范围?

javascript - 直接从 body 标签中删除未被另一个父 html 元素包裹的所需元素

css - 使用 CSS 时 Canvas 被拉伸(stretch),但使用 "width"/"height"属性正常