我在表格中有以下行。
<tr class="data_rows" ng-repeat='d in t2'>
<td class="tds"> <input class='checkBoxInput' type='checkbox' onchange='keepCount(this)'></td>
<td class="tds"><a href='perf?id={{d.ID}}'>{{d.ID}}</a></td>
<td class="tds">{{d.HostOS}}</td>
<td class="tds">{{d.BuildID}}</td>
<td class="tds">{{d.Description}}</td>
<td class="tds">{{d.User}}</td>
<td class="tds">{{d.StartTime}}</td>
<td class="tds">{{d.UniqueMeasure}}</td>
<td class="tds">{{d.TotalMeasure}}</td>
</tr>
这里是HTML for按钮,它将调用函数从已选中的复选框中收集ID并存储它们。
<div id='compButtonDiv' align='center' style="display: none;">
<input id='cButton' type='button' value='compare selections' onclick='submitSelection()' style= "margin :0 auto" disabled>
</div>
数据在t2中,由长度为15-20的数组组成。
我想要做的是获取2个复选框的ID即{{d.ID}}
的值,以便我可以将它们存储在变量中,并使用`location.href = url?param1&amp将它们作为查询参数传递给URL ;参数2&#39;
这是javascript:
function keepCount(obj){
debugger;
//var count=0;
if(obj.checked){
obj.classList.add("checked");
}else{
obj.classList.remove("checked");
}
var count = document.getElementsByClassName("checked").length;
var cBtn = document.getElementById('cButton');
//alert(count);
if(count == 2){
cBtn.disabled = false;
}
else if(count < 2){
cBtn.disabled= true;
}
else{
cBtn.disabled= true;
alert("Please Select two sets for comparison. You have selected: " + count);
}
}
function submitSelection(){
// what should be the code here??
location.href= "existingURL?a&b";
}
现在有人可以告诉我如何获得身份证吗?我需要从选中的复选框中提取ID(点击按钮,其代码我已在上面提及&#39;。
感谢。
-Ely
答案 0 :(得分:0)
首先,当我们使用angularjs时,我们倾向于越来越少地依赖DOM操作。
出于这个原因,您可以做的是将ngModel附加到复选框。 喜欢:
<input class='checkBoxInput' ng-model='d.isChecked' type='checkbox' onchange='keepCount(this)'>
这样做,它将变量(在您的情况下是列表中项目的属性)附加到复选框。如果检查它是真的,如果未选中,最初它将是未定义的,稍后检查然后取消选中它将是假的。
现在,当你提交时,只需循环遍历函数中的原始列表并检查d.isChecked的值(true / falsy值)。然后,您可以在单独的列表中添加必要的项目以进行提交。 唯一的问题是在提交时检查列表,检查是否(d.isChecked),以便它忽略假值(false / undefined)。