Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/471.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 Angular JS从div收集所有输入值_Javascript_Angularjs_Input - Fatal编程技术网

Javascript Angular JS从div收集所有输入值

Javascript Angular JS从div收集所有输入值,javascript,angularjs,input,Javascript,Angularjs,Input,我是Angular JS的新手,我创建了一个带有输入元素的div,并且没有对输入框使用ng模型 <div class="row"> <br> <div class="col-sm-10" id="rankingForm" > <p ng-repeat=" x in $ctrl.outputProductAttributeValueList"> {{x}} &nbsp;&nbs

我是Angular JS的新手,我创建了一个带有输入元素的div,并且没有对输入框使用ng模型

<div class="row">
    <br>
    <div class="col-sm-10" id="rankingForm" >
        <p ng-repeat=" x in $ctrl.outputProductAttributeValueList">
             {{x}} &nbsp;&nbsp;&nbsp; <input type="text" />
        </p>
        <br>
        <button type="submit" ng-click="$ctrl.onRankingFormSubmit()"> SUBMIT</button>
    </div>
</div>
现在我想收集由ng repeat动态创建的所有输入值。请告诉我怎么做?

AngularJS是将视图绑定到模型中的标准方法,而不是直接与DOM交互

您可以在div
id=“rankingForm”
中获取所有输入,您可以执行以下操作:

var inputs = $document[0]
    .getElementById('rankingForm')
    .getElementsByTagName('input');
或使用:

一旦有了
输入
,就可以迭代所有输入以获得值。。请注意,我在输入中添加了属性
name

代码省略ngModel

angular
.module('应用程序',[])
.controller('AppController',['$scope','$document',函数($scope,$document){
$scope.outputProductAttributeValueList=[‘年龄’、‘性别’、‘全部’];
$scope.onRankingFormSubmit=函数(){
var inputs=$document[0]。querySelectorAll(“#rankingForm input”);
输入。forEach(函数(输入){
console.log(input.name+':'+input.value);
});
};
}]);


{{x}


提交
您不需要任何验证或检查数据是否实际存在吗?不需要任何验证所有输入字段都是从服务器响应动态生成的。那么我如何维护所有ng模型变量呢?您只需要一个
名称
(字段的唯一标识符)和您希望填充它的值(如果有)…@voorarun我想知道,为什么不使用ng模型呢。这是标准的角度方法-使用模型,而不是直接使用DOM。您当前的实现消除了Angular的所有优点,并且与旧的jQuery方法没有任何区别。
var inputs = $document[0]
    .getElementById('rankingForm')
    .getElementsByTagName('input');
var inputs = $document[0].querySelectorAll('#rankingForm input');