【发布时间】:2015-01-03 07:59:43
【问题描述】:
我正在尝试创建一个在选择单选按钮时有效的表单。单选按钮是用户可以从中选择一个的组的一部分。我正在使用控制器中的函数将required 属性分配给单选按钮,这似乎导致了验证问题。我认为这是某种范围问题,但我无法弄清楚。
这是一个显示问题的 jsfiddle:http://jsfiddle.net/flyingL123/x27nv8fq/5/
您可以看到单选输入正确地分配了required 属性,但即使用户没有选择选项,表单仍会验证并提交。
这是 HTML:
<div ng-app="test" ng-controller="TestController">
<form name="testForm" ng-submit="testForm.$valid && submitForm()" novalidate>
<div ng-repeat="option in options">
<input type="radio" name="testInput"
ng-value="option"
ng-model="$parent.selectedOption"
ng-required="required()" />
{{ option.value }}
</div>
<button type="submit">Submit</button>
<p ng-show="testForm.testInput.$invalid">Form is invalid</p>
{{ selectedOption }}
</form>
</div>
还有 JS:
var test = angular.module('test', []);
test.controller('TestController', ['$scope', function($scope){
$scope.options = [{id: '0', value: 'blue'}, {id: 1, value: 'green'}]
$scope.selectedOption = {};
$scope.submitForm = function(){
alert('Form valid and submitted');
}
$scope.required = function(){
if(!$scope.selectedOption.id){
return true;
}
return false;
}
}]);
为什么即使没有选择required 单选输入,表单仍被视为有效?
【问题讨论】:
标签: javascript angularjs validation