我正在尝试更新页面上所有选择列表的选项,并使用 JavaScript 实现了在 Get list of all `input` objects 上找到的解决方案,而无需访问 `form` 对象和其他页面。
这在一定程度上有效,但只有在触发 javascript 之后出现的选择列表才会更新,而我需要它们全部完成,无论它们相对于触发选择的位置如何。
这是我所拥有的简化版本:
function chooseBon(id, value) {
var bonbonsAmount = 12;
var bonbonsCurrent = 0;
var bonbonsCount = 4;
var inputs, index;
// get all the select lists
inputs = document.getElementsByTagName('select');
// loop through all the lists
for (index = 0; index < inputs.length; ++index) {
// First disable all options
for (j = 0; j<=bonbonsAmount; ++j) {
inputs[index].options[j].disabled="disabled";
}
// Then re-enable the ones we still need
for (j = 0; j<=(bonbonsAmount - bonbonsCurrent); ++j) {
inputs[index].options[j].disabled="";
}
// add up the no of chocs selected so we know how many options to re-enabled above
bonbonsCurrent += inputs[index].selectedIndex;
}
我是一名公认的新手,并且正在将一个电子商务平台的脚本改编为另一个,所以在某些领域我感到手足无措,所以请随时提出其他建议。