Javascript angularjs选择下拉式验证

Javascript angularjs选择下拉式验证,javascript,html,angularjs,drop-down-menu,Javascript,Html,Angularjs,Drop Down Menu,角度v1.57: 有一个问题,当我填写选择下拉列表时,我想验证它。它应该是必需的,并且应该选择一个项目。当我在我的模型中得到一些数据,但数据不好时,下拉列表不应该选择任何内容。这是现成的,但它应该使我的选择下拉字段$invalid,以便在其周围绘制一个简单的红色边框(使用css)。我所有的输入字段都有相同的结构 正如你们所看到的,我在下面用plnkr试过了,但运气不好。选择下拉字段保持有效,即使未选择任何内容,但我的模型($scope.data.selector)有一个“falsy”值 $sco

角度v1.57:

有一个问题,当我填写选择下拉列表时,我想验证它。它应该是必需的,并且应该选择一个项目。当我在我的模型中得到一些数据,但数据不好时,下拉列表不应该选择任何内容。这是现成的,但它应该使我的选择下拉字段$invalid,以便在其周围绘制一个简单的红色边框(使用css)。我所有的输入字段都有相同的结构

正如你们所看到的,我在下面用plnkr试过了,但运气不好。选择下拉字段保持有效,即使未选择任何内容,但我的模型($scope.data.selector)有一个“falsy”值

$scope.data={
选择器:3
}
当我将模型更改为有效值时,例如:

$scope.data={
选择器:2
}
我可以看到在下拉列表中选择的值。但当存在“falsy”值时,select下拉列表应为$invalid。如何实现这一点(当没有值时,它应该像输入字段一样工作)


选择一个数字
输入某物
var myApp=angular.module(“myApp”,[]);
控制器(“MyController”,函数($scope){
$scope.data={
选择器:3,
输入者:“
}
$scope.list=[{
价值:1,
标签:“一”
}, {
价值:2,
标签:“两个”
}];
});
您可以添加此

<select class="form-control" name="testList" ng-model="item.value" ng-options="item.value as item.label for item in list" required>
      <option style="display:none" value=""></option>
    </select>

有关更多信息,请参见。您可以添加此

<select class="form-control" name="testList" ng-model="item.value" ng-options="item.value as item.label for item in list" required>
      <option style="display:none" value=""></option>
    </select>


有关更多信息,请参见

在没有默认文本的情况下,没有特定的方法验证下拉列表。我已求助于将此添加到select div

ng-class="{'has-error': testForm.testList.$invalid
    || (testForm.testList.$touched && testForm.testList.$pristine)}"
var myApp=angular.module(“myApp”,[]);
控制器(“MyController”,函数($scope){
$scope.data={
选择器:3,
输入者:“
}
$scope.list=[
{
价值:1,
标签:“一”
},
{
价值:2,
标签:“两个”
}
];
});
。有错误{
边框:1px纯红;
}

选择一个数字
输入某物

在没有默认文本的情况下,没有特定的方法验证下拉列表。我已求助于将此添加到select div

ng-class="{'has-error': testForm.testList.$invalid
    || (testForm.testList.$touched && testForm.testList.$pristine)}"
var myApp=angular.module(“myApp”,[]);
控制器(“MyController”,函数($scope){
$scope.data={
选择器:3,
输入者:“
}
$scope.list=[
{
价值:1,
标签:“一”
},
{
价值:2,
标签:“两个”
}
];
});
。有错误{
边框:1px纯红;
}

选择一个数字
输入某物

在控制器内使用 $scope.Form={}

然后在html+代码中执行如下操作

<form name="Form.testForm" role="form" novalidate>
<label>Select a number</label>
<div ng-class="{'has-error': Form.testForm.testList.$invalid}">
    <select class="form-control" name="testList" ng-model="data.selector" ng-options="item.value as item.label for item in list" required>
        <option value="">select a value<option>
    </select>
    <p ng-if="Form.testForm.testList.$invalid && !Form.testForm.testList.$pristine" class="help-block text-red">field is required.</p>
</div>

选择一个数字
选择一个值

字段是必需的


在控制器内使用 $scope.Form={}

然后在html+代码中执行如下操作

<form name="Form.testForm" role="form" novalidate>
<label>Select a number</label>
<div ng-class="{'has-error': Form.testForm.testList.$invalid}">
    <select class="form-control" name="testList" ng-model="data.selector" ng-options="item.value as item.label for item in list" required>
        <option value="">select a value<option>
    </select>
    <p ng-if="Form.testForm.testList.$invalid && !Form.testForm.testList.$pristine" class="help-block text-red">field is required.</p>
</div>

选择一个数字
选择一个值

字段是必需的


给了我一个期望的结果,就是查看(在控制器中)值是否在选项列表中,如果模型没有发生任何变化,如果没有,则使模型的该部分未定义


不完美,但它可以工作。

给了我一个想要的结果,就是查看(在控制器中)该值是否在选项列表中,如果该值对模型没有任何影响,如果没有使该部分模型未定义


虽然不完美,但它可以工作。

对于angular v1.57,这并不能提供所需的结果。根据angularjs的说法,选择的标签仍然是$valid。这在AngularV1.57中并没有给出期望的结果。根据angularjs的说法,选择的标签仍然是$valid。