如何迭代地遍历相同的表单元素来确定选择多个中的哪些项目已被指定?
我需要能够确定我正在操作哪个选择框,然后从该框中找到用户选择的所有条目。页面上的选择数量各不相同 - 它是在服务器端根据 dB 中的信息构建的。
这些值是虚拟的,但这可能是一个月中每天 10 次不同的活动。用户可以每天从零到全部选择,然后处理这些值。
代码中有关于我所面临问题的具体点的注释。
诸如使用表单刷新处理每个选择的替代方法是不可行的。所有信息都需要在一个页面上输入,然后作为整个数据集立即处理。如果存在这样的解决方案,我对使用 jQuery 或 Angular 等工具集的解决方案持开放态度。
我尝试使用构建变量指向数组索引,并且尝试将对象复制到本地数组,该数组非常适合单步执行它们,但随后我丢失了 .selected 属性。我已经搜索了这个网站和一般的网络,但我没有找到关于这个问题的参考。
<form name=frm id=frm>
<select multiple id=s_1 name=s_1>
<option value=1>One</option>
<option value=2>Two</option>
<option value=3>Three</option>
</select>
<select multiple id=s_2 name=s_2>
<option value=1>One</option>
<option value=2>Two</option>
<option value=3>Three</option>
</select>
<a onclick="procSel(2);">Go</a> <!-- number of form elements -->
</form>
<script>
function procSel(elCount);
var j;
for (j=0;j<elCount;j++) {
var sel = 's_'+j;
var selLen = document.getElementById(sel).length;
for (i=0;i<selLen;i++) {
//this is where I would use something like this
//but element s_1 isn't known by name directly, the page may
//have anywhere from 1 to 100 (or more) separate selects
if (document.forms.frm.s_1[i].selected) {
//this is where I would know J (the specific select item on the form)
//and the value of one of the selections made for the drop down
}
}
}
</script>