0

我在表格中有我的表格,我使用此代码添加新行和新字段:

$("input.buttonCAdd").click(function(){ 
    $('#table > tbody > tr').eq(2).after('<tr><td width=\"25%\"><b>Substancje czynna:</b></td><td width=\"25%\"><select name=\"nazwamiedzynarodowa[]\"><option selected=\"selected\">nazwa1</option><option>nazwa2</option></select></td><td> Dawka: <br><input name=\"dawka[]\" type=\"text\"> <br></td><td>Jednostka:<br><select name=\"jednostka[]\"><option selected=\"selected\">jed1</option><option>jed2</option></select></td> </tr>')
});

可以,但是我的表单“看不到”新字段,并且我没有从这些字段中获取数据。我该如何解决?

4

1 回答 1

0

我不确定这是否可以帮助您,但我想问题可能出在此处:“如果 HTML 比没有属性的单个标记更复杂,就像在上面的示例中一样,则元素的实际创建由浏览器的 innerHTML 机制。” 引用自jQuery 文档(另请参见2)我想如果您避免使用 innerHTML,它可以工作。尝试使用标准的 javascript 方法:

//new row
var newrow = document.createElement('tr'); // creates empty row

//1st cell
var newcell = newrow.insertCell(0); // create and insert empty cell to newrow + returns cell reference
newcell.style.width = '25%';
newcell.style.fontWeight = 'bold';
newcell.appendChild(document.createTextNode('Substancje czynna:'));

//2nd cell
var newcell = newrow.insertCell(1);
newcell.style.width = '25%';
var newselect = document.createElement('select');
newselect.setAttribute('name', 'nazwamiedzynarodowa[]');
newselect.options[0] = new Option('nazwa1', 'opt1');
newselect.options[1] = new Option('nazwa2', 'opt2');
newselect.options[0].selected = true;
newcell.appendChild(newselect);

//3rd cell
var newcell = newrow.insertCell(2);
newcell.appendChild(document.createTextNode(' Dawka: '));
newcell.appendChild(document.createElement('br'));

//4th cell
var newcell = newrow.insertCell(3);
var newselect = document.createElement('select');
newselect.setAttribute('name', 'jednostka[]');
newselect.options[0] = new Option('jed1', 'opt1');
newselect.options[1] = new Option('jed2', 'opt2');
newselect.options[0].selected = true;
newcell.appendChild(newselect);

//alert(newrow.innerHTML);
$('#table > tbody > tr').eq(2).after(newrow);
于 2012-06-26T17:13:42.130 回答