【问题标题】:Angular dropdown/select required always says it is validAngular dropdown/select required 总是说它是有效的
【发布时间】:2014-01-08 20:21:05
【问题描述】:

所以我有一个下拉菜单,我正在使用 Angular 来构建它。 Minutes 是一个数字数组 [0,1,2....59]。过滤器是一个简单的过滤器,将 0-9 的数字显示为 00、01...等。

 <select ng-model="addObj.StartMinute"
                            ng-options="m as m | pad2Digit for m in Minutes"
                            required
                            name="startMinute">
                            <option value="">-- select --</option>
                        </select>

我的问题是这总是报告有效。我已删除其中的选项,该选项可让我自定义未找到匹配项时使用的选项,并且不会更改它。我尝试将 StartMinute 设置为 null、-1 和未定义,但仍然选择始终表示它是有效的。

到目前为止,我发现问题与我使用简单数字而不是绑定到对象有关。在我使用更多对象集合进行下拉的情况下,所需的验证是正确检测到没有选择任何内容。我原以为将上述下拉列表中的初始值设置为 null 会起作用,但事实并非如此。那么有谁知道如何在绑定到数字数组的下拉列表中使用所需的验证?

【问题讨论】:

  • 你为什么不接受你自己的答案?

标签: validation angularjs html-select


【解决方案1】:

项目中肯定有其他问题无法正常工作,因为我拼凑在一起尝试演示问题的原始 jsfiddle 可以正常工作。如果初始值为 null,那么验证确实会像我预期的那样失败。

HTML

<div ng-app="app">
<div ng-controller="ctrlDropdown">
    <form name="testForm">
        <select ng-model="number1"
                ng-options="num for num in numbers"
                required
                name="ddl1">
                    <option value="">- select - </option>
        </select>
        <br/>failsValidation: {{testForm.ddl1.$error.required}}
        </form>
</div>
</div>

JS

var app = angular.module("app",[]);
app.controller("ctrlDropdown",function($scope){
    $scope.test = "wee";
    $scope.number1 = null;
    $scope.numbers=[1,2,3,4,5,6];
});

http://jsfiddle.net/NBhTT/

【讨论】:

    猜你喜欢
    • 2016-01-31
    • 2019-05-09
    • 2017-11-01
    • 2021-06-19
    • 2019-12-21
    • 1970-01-01
    • 2016-11-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多