多くの行を持つテーブルがあり、各行には選択リストがあります。このようなもの:
| USER | MANAGER | DEPARTMENT |
| Rob | [John Smith |V] | [Sales |V] |
| Sue | [Bob Jones |V] | [Support |V] |
ユーザーは新しい行を自由に追加でき、多くの行があり、リストの内容は複雑です。
すべてのマネージャーセレクターIDを「manager」、すべての部門セレクターIDを「department」にすることで、作業を大幅に簡素化しました。
フォームが送信されたら、各行を循環し、各行を見つけて、ID「manager_[rownumber]」と「department_[rownumber]」を変更するJavaScriptを作成しました。
そして、フォームを送信します。私のJavaScriptコードは以下の通りです。
アラートポップアップを使用したデバッグに基づいて、IDは希望どおりに変更されていますが、サーブレットは1つの「manager」パラメーターと1つの「department」行番号しか受け取りません。
すべての入力('manager_1'、'manager_2'など)が送信されないのはなぜですか?IDを変更した後、フォームを送信する前に変更が有効になるようにするために、何かしなければならないことはありますか?
ありがとう!
ロブ
これが私のコードです:
function submitForm() {
correctInputIDs();
document.myform.submit();
}
function correctInputIDs() {
var rows = document.getElementsByTagName("tr");
for (var i=0; i<rows.length; i++) {
var row = rows[i];
selectElements = rows.getElementsByTagName("select");
for (var j=0; j<selectElements.length; j++) {
var selectElement = selectElements[j];
if (selectElement.id == "manager") {
selectElement.id = "manager_"+i;
}
if (selectedElement.id == "department") {
selectElement.id = "department_"+i;
}
}
}
}