Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/436.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 表单级别的Anguarjs指令,访问所有字段并检查验证_Javascript_Html_Angularjs - Fatal编程技术网

Javascript 表单级别的Anguarjs指令,访问所有字段并检查验证

Javascript 表单级别的Anguarjs指令,访问所有字段并检查验证,javascript,html,angularjs,Javascript,Html,Angularjs,在表单(itemSelectionForm)中,我使用ng repeat呈现多个表。在每个表中,我都有单选按钮,这些按钮的名称附加了索引。现在,我想写一个angular JS指令(selectAtleastOneItemToReturn),我将把它放在表单上(使用SelectAtleastOne项),它将基于子表单选按钮进行表单验证。现在,我不知道如何在该指令中访问这些子表单选按钮及其值,以便编写验证代码。而且,如果单选按钮的值发生变化,我想一次又一次地进行验证。如果表单无效,则“下一步”按钮将

在表单(itemSelectionForm)中,我使用ng repeat呈现多个表。在每个表中,我都有单选按钮,这些按钮的名称附加了索引。现在,我想写一个angular JS指令(selectAtleastOneItemToReturn),我将把它放在表单上(使用SelectAtleastOne项),它将基于子表单选按钮进行表单验证。现在,我不知道如何在该指令中访问这些子表单选按钮及其值,以便编写验证代码。而且,如果单选按钮的值发生变化,我想一次又一次地进行验证。如果表单无效,则“下一步”按钮将被禁用。HTML如下所示


行动
项目说明
{{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>