Angularjs 角材料md选择验证问题
我的表单上有几个md select下拉列表,其中许多都有验证。验证在所有下拉列表上都正常工作,但以下内容除外,这不会阻止表单在为空时提交:Angularjs 角材料md选择验证问题,angularjs,validation,angular-material,Angularjs,Validation,Angular Material,我的表单上有几个md select下拉列表,其中许多都有验证。验证在所有下拉列表上都正常工作,但以下内容除外,这不会阻止表单在为空时提交: <md-input-container class="form-input-container" flex="15"> <label>NDRA*</label> <md-select id="registration-informatio
<md-input-container class="form-input-container"
flex="15">
<label>NDRA*</label>
<md-select id="registration-information-ndra"
name="ndra"
ng-model="vm.registration.code"
ng-class="{'validation-error': newForm.ndra.$error.required && newForm.$submitted}"
ng-required="vm.validation.ndra">
<md-option ng-repeat="code in vm.dropdowns.codes"
value="{{code}}">
{{code}}
</md-option>
</md-select>
</md-input-container>
{“$validators”:{},“$asyncValidators”:{},“$parsers”:[],“$formatters”:[],“$viewChangeListeners”:[],“$untouched”:true,“$touched”:false,“$pristine”:true,“$dirty”:false,“$valid”:false,$invalid”:true,“$error”:{“必需的”:true,“$name”:“registrationType”,“$options”:null}
我认为您的vm.validation.ndra
返回的与您的vm.validation.registrationType
返回的相反。这样就不需要选择
如果你看看被退回的东西
NDRA
vs
注册类型
他们完全相反
您应该检查以确保在
vm.validation.ndra
中获得正确的真实值,只需将ng required
中的值更改为false
,并在以下链接中查看结果。我认为vm.validation.ndra
返回false
。
把它弄明白了。在我的控制器代码中,控制器被实例化,然后
this.registration.code
被设置为P
,因此ndra下拉列表的模型已经有了一个值 请提供更多关于这个问题的信息好吗?您是否有一个默认选项,甚至是一个空选项?您是否也可以显示您列出的其他选项的标记?只添加了标记您是否将vm.dropdown.types
与vm.dropdowns.code
进行了比较?我猜你没有空值选项,所以不管你有什么值,Angular都认为这是有值的。是的,它们都为各自的下拉菜单返回字符串选项数组。这不起作用。我在我的原始帖子中添加了一些关于表单输入值的更多信息。我检查了vm.validation.ndra
和vm.validation.registrationType
——它们都返回true。取出vm.validation.ndra
并在标记中将其替换为true
,看看会发生什么。
<md-input-container class="form-input-container padded-input md-block"
flex-gt-sm="">
<label>Type of Registration*</label>
<md-select id="registration-information-type"
name="registrationType"
ng-model="vm.registration.type"
ng-class="{'validation-error': newForm.registrationType.$error.required && newForm.$submitted}"
ng-required="vm.validation.registrationType">
<md-option ng-repeat="type in vm.dropdowns.types"
value="{{type}}">
{{type}}
</md-option>
</md-select>
</md-input-container>
"$valid":true,"$invalid":false
"$valid":false,"$invalid":true