我有一个简单的表单,其中我有一个带有意义名称的文本框,并且每个文本框都对应一个文本框。
我可以按照建议获取复选框及其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)
});
}
}
}
答案 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) {
}
}
}