Angular方式获取复选框值和相应的文本框值

时间:2017-02-14 16:19:39

标签: javascript html angularjs

我有一个简单的表单,其中我有一个带有意义名称的文本框,并且每个文本框都对应一个文本框。

我可以按照建议获取复选框及其ID的列表,但我无法获得相应的文本框值。

实现这一目标的任何指导?仅供参考,复选框的值来自数据库,并通过ng-repeat进行迭代。

以下是代码段

<tr ng-repeat="item in itemList | filter:search_query">
    <td>
     <label for="{{item.inventoryId}}"> 
     <input type="checkbox" class="checkbox-circle" 
     ng-click="materialSelected(materialSelection.ids, item.inventoryId);"  
     ng-model="materialSelection.ids[item.inventoryId]" name="group" id="
    {{item.inventoryId}}" /> {{item.itemName}}
   </label>
   </td>
   <td><span>
   <label>
   <input type="text" class="form-control" ng-model="item.requiredQty">                    
   </label></span>
</td>

Javascript代码

$scope.materialSelected = function(idsList, inventoryId) {
                    $scope.materialList = [];
                    var materialId;
                    for (materialId in idsList) {
                        if (idsList[materialId] == true) {
                            $scope.materialList.push({
                                'materialId' : parseInt(materialId, 10)
                            });
                        }
                    }
                }

2 个答案:

答案 0 :(得分:0)

如果我理解正确,你可以试试这个......

$scope.materialList.push({
    'materialId' : parseInt(materialId, 10),
    'requiredQty' : $scope.itemList.find(x => x.inventoryId == materialId).requiredQty
});

或者这......

$scope.materialList.push({
    'materialId' : parseInt(materialId, 10),
    'requiredQty' : $scope.itemList.filter(function(v) { return v.inventoryId == materialId; })[0].requiredQty
});

取决于所需的浏览器支持。

答案 1 :(得分:0)

在HTML元素中,我添加了下面的代码,

<span ng-repeat="item itemList" style="text-align: left;"> 
<label for="{{item.itemID}}"> 
<input type="checkbox" class="checkbox-circle" ng-click="itemSelected(selection.ids, item.itemID)" style="border-radius: 2px;" ng-model="selection.ids[item.itemID]" name="group" id="{{item.itemID}}" /> {{item.itemName}} 
</label> 
</span>

在JS中,我必须添加一个函数来捕获它,

function(idsList) {
for (plantID in idsList) {
  if (idsList[plantID] == true) {
  }
}
}