オプションを選択するためのチェックボックスと、選択を順序付けるためのコンボボックスを持つフォームを実装したいと考えています。http://jsbin.com/AmeWahI/1/ 3 番目のチェックボックスをクリックするまで機能します。だから、私が欲しいのは、チェックボックスをクリックしたときに、現在選択されているものの中からこの選択を注文したいということです。たとえば、すべてのチェックボックスをクリックすると、すべてのコンボボックスが順序付けのために 1,2,3 を表示するはずです。最初と 3 番目のチェックボックスをクリックすると、2 つの要素だけがクリックされるため、両方のコンボボックスに 1 と 2 が表示されます。
質問する
161 次
4 に答える
1
修正しました、こちらをご覧ください
2番目のforループをこれに置き換える必要があります
for (var n=0; n<3; n++) {
var select = document.getElementById("slct"+n);
var length = select.options.length;
select.remove(0);
for (var m = 0; m < length; m++) {
select.options[m] = null;
}
}
于 2013-09-05T06:54:16.530 に答える
0
これを試して、
function enableDisable(bEnable, checkboxID) {
var id = checkboxID.replace("checkbox", "");
var checkedItems = new Array();
var inputElems = document.getElementsByTagName("input");
count = 0;
for (var i = 0; i < inputElems.length; i++) {
if (inputElems[i].type === "checkbox" && inputElems[i].checked === true) {
count++;
checkedItems.push(inputElems[i].id);
}
}
for (var k = 0; k < checkedItems.length; k++) {
var idk = checkedItems[k].replace("checkbox", "");
var select = document.getElementById("slct" + idk);
var length = select.options.length;
for (i = 0; i < length; i++) {
select.options[i] = null;
}
}
for (var j = 0; j < checkedItems.length; j++) {
for (var k = 0; k < checkedItems.length; k++) {
var id = checkedItems[j].replace("checkbox", "");
var combo = document.getElementById("slct" + id);
var option = document.createElement("option");
combo.remove(0);
option.text = "" + (k + 1);
option.value = "" + (k + 1);
try {
combo.add(option, null); //Standard
} catch (error) {
combo.add(option); // IE only
}
}
}
}
何か気になることがあれば教えてください
于 2013-09-05T08:19:43.813 に答える
0
フォーム内でチェックされているチェックボックスの数を取得でき、それに基づいて選択オプションの値を設定できます..
1 と 3 の 2 つのチェック ボックスをオンにしたとします。私の学習順序は 2 で、選択ボックス オプションの値を 2 に設定できます。
于 2013-09-05T06:46:02.893 に答える
0
まあ、チェックボックスがチェックされているかチェックされていないときはいつでも、すべてのチェックされたチェックボックスの数を見つけ、すべてのドロップダウンアイテムリストをクリアし、それぞれのチェックボックスがチェックされている場合にのみ、1からチェックされたチェックボックスの合計数までアイテムをドロップダウンに追加します。
これがあなたを助けることを願っています...
于 2013-09-05T06:57:21.437 に答える