2012-06-26 74 views
0

我有我以表格的形式,我使用此代碼,以添加新的領域新行:jQuery和添加行形式

$("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>') 
}); 

這工作好,但我的形式「不看」新的領域,我沒有從這些領域獲得數據。我該如何解決它?

+0

你爲什麼要在單引號字符串內轉義雙引號? –

+1

'define:does not see' – Matt

+1

如何提交表單或從中檢索值? – Chibuzo

回答

0

我不知道這是否可以幫助你,但是我想這個問題可能是在這裏: 「如果HTML比沒有屬性的一個標籤更爲複雜,因爲它是在上面的例子中,實際創作的元素由瀏覽器的innerHTML機制處理。「引用自jQuery docs(另請參閱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); 
+0

仍然無法正常工作,這是我的整個代碼與您的更改:http://pastebin.com/7UH3jjVp – user1483208

+0

哎呀,好像你有135行錯字:nazwamiedzynarodowa [],也正如人們上面所說,你需要糾正撇號:$('#table> tbody> tr')。eq(2).after('Substancje czynna: ...'),也是正確的,將表格移動到窗體中,是:

... ...
...
。兩個提示4幫助:使用Ctrl + Shift + i在Firefox中檢查您的頁面並使用驗證器https://addons.mozilla.org/firefox/addon/html-validator/ – Stano

+0

已更新腳本,它位於以下位置:http:// pastebin.com/VGAKwYf8(uf,第98行仍然有一個不正確的名字:nazwamiedzynarodowa [0] - >應該是nazwamiedzynarodowa0 []或nazwamiedzynarodowa [],以指示php的數組變量)。請根據需要更正它。順便說一句,你可以通過使用<?php var_export($ _ POST)查看所有發佈的數據;死(); ?> – Stano