Javascript 表单级别的Anguarjs指令,访问所有字段并检查验证
在表单(itemSelectionForm)中,我使用ng repeat呈现多个表。在每个表中,我都有单选按钮,这些按钮的名称附加了索引。现在,我想写一个angular JS指令(selectAtleastOneItemToReturn),我将把它放在表单上(使用SelectAtleastOne项),它将基于子表单选按钮进行表单验证。现在,我不知道如何在该指令中访问这些子表单选按钮及其值,以便编写验证代码。而且,如果单选按钮的值发生变化,我想一次又一次地进行验证。如果表单无效,则“下一步”按钮将被禁用。HTML如下所示Javascript 表单级别的Anguarjs指令,访问所有字段并检查验证,javascript,html,angularjs,Javascript,Html,Angularjs,在表单(itemSelectionForm)中,我使用ng repeat呈现多个表。在每个表中,我都有单选按钮,这些按钮的名称附加了索引。现在,我想写一个angular JS指令(selectAtleastOneItemToReturn),我将把它放在表单上(使用SelectAtleastOne项),它将基于子表单选按钮进行表单验证。现在,我不知道如何在该指令中访问这些子表单选按钮及其值,以便编写验证代码。而且,如果单选按钮的值发生变化,我想一次又一次地进行验证。如果表单无效,则“下一步”按钮将
行动
项目说明
{{item.description}
选择2
选择3
下一个
最简单的方法可能是将表单对象传递给指令,并在您需要的属性上放置一个$watch
,在您的情况下,这可能是$error
——尽管我不太清楚您实际上想要实现什么
JS:
HTML:
{{item.description}
小提琴:
希望这能让你有所进展。谢谢……但我有一些项目,其中每个项目都有3个操作…………用户应至少选择一个项目上的特定操作……我想使用指令在表单级别进行验证……现在在指令中,我想访问所有具有动态名称的动态生成的收音机,如果条件满足,表单将有效,否则将设置表单为无效…….如果用户更改了对任何项的操作…..指令应反复进行验证…..我不想查看表单。错误
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope, $log){
$scope.items = [
{
action: 'fooAction',
description: 'Foo'
},
{
action: 'barAction',
description: 'Bar'
}
];
});
app.directive('selectAtleastOneItem', function(){
return {
restrict: 'A',
scope: {
frm: '=selectAtleastOneItem'
},
link: function(scope, element, attrs){
scope.$watch('frm.$error', function(newVal, oldVal){
console.log(newVal);
}, true);
}
}
});
<div ng-app="myApp">
<div ng-controller="myCtrl">
<div ng-form="itemSelectionForm" select-atleast-one-item="itemSelectionForm">
<div ng-repeat="item in items">
{{item.description}}
<input type="radio" name="inputRadios{{$index}}" ng-model="item.action" required>
</div>
</div>
</div>