0

我有一个使用 javascript 动态生成的具有 2 列的表。第一列是从列表框中选择的项目的列表,第二列是用于输入数量的空白文本框。现在我想检索要插入数据库的表的第一列的值。请帮助我如何做到这一点。到目前为止,我已经做了这样的事情。我尝试使用隐藏文本框或具有隐藏文本框的标签。但无法得到结果。(chem_sel2 是我的列表框的名称)

function fun1(){

var my_chem_qty_div = document.getElementById("chem_qty");
var table = document.createElement('TABLE');
table.id='sel_chem_table';
table.border='1';
table.align='center';
table.style.width='100%';
var tableBody = document.createElement('TBODY');
table.appendChild(tableBody);

var chem_sel2_combo =document.getElementById("chem_sel2");

for(var k=0;k<chem_sel2_combo.options.length;k++)
        {
         var tr = document.createElement('TR');
         tableBody.appendChild(tr);

        /*  var td = document.createElement('TD');
        td.width='30';
        td.appendChild(document.createTextNode(chem_sel2_combo.options[k].value));
        tr.appendChild(td);*/

        var td1 = document.createElement('TD');
        var lbl= document.createElement('label');
        var txt=document.createElement('input');
        txt.setAttribute('id','selctd_chem');
        txt.setAttribute('value',chem_sel2_combo.options[k].value);
       // txt.setAttribute('type','hidden');
        lbl.setAttribute('id', 'lbl_txt');
        lbl.setAttribute('value', chem_sel2_combo.options[k].value);
        td1.width='40';

        td1.appendChild(txt);
        td1.appendChild(lbl);
        //td1.setAttribute('type', 'hidden');
        tr.appendChild(td1);

        var td2 = document.createElement('TD');
        var txt= document.createElement('input');
        txt.setAttribute('id',"qty_text");
        txt.setAttribute('type','text');
        td2.width='30';
        td2.appendChild(txt);
        tr.appendChild(td2);
}
}
4

1 回答 1

1

移动tableBody.appendChild(tr);到循环的末尾。在向 tr 添加任何内容之前,您将附加tr到表中。

for (...) {
    var tr = ...;
    tr.append(...);
    tableBody.append(tr);
}

代替:

for (...) {
    var tr = ...;
    tableBody.append(tr);
    tr.append(...);
}
于 2013-04-08T19:14:24.477 回答