2014-01-16 61 views
1

我有一些使用JS動態創建的輸入字段。問題是,當我提交頁面時,除了使用IE時,Bean的setter不會被調用。當我在代碼上靜態添加輸入字段時,它只適用於Chrome和Firefox。Struts 1僅在IE中提交作品

這適用於所有的瀏覽器:

<input name="test" value="test"/> 

在IE中這僅適用於:

var test = document.createElement('input'); 
test.name = 'test'; 
test.value = 'test'; 
tbody.appendChild(test); 

任何人都知道解決的辦法嗎?

回答

1

這是我的錯。 form標記位於我的table標記內。

0

如果這是一個表的tbody元素作爲變量名建議,那是無效的標記。 tbody只能將行作爲孩子。

+0

是在

之內。如果我直接在代碼中添加(在之內),它工作正常。但使用JS添加它們只適用於IE。不管怎麼說,還是要謝謝你。 –

+0

它可以直接使用,因爲瀏覽器修復了無效的代碼!使用瀏覽器控制檯並在呈現html後檢查它,查看元素的位置。你需要把它附加到td裏面的td裏面。或者只是將它附加在表格後面。 – epascarello

+0

嘗試追加表格後。在tr中的td內使用此靜態代碼。並試着再次使用JS插入:var TRtest = document.getElementById('TRtest'); \t var newTD = document.createElement('td'); \t var input = document.createElement('input'); \t input.name ='test'; \t input.value ='test'; \t newTD.appendChild(input); \t TRteste.appendChild(newTD);.同樣的問題。比較呈現的HTML和他們看起來完全相同,除了在DOM檢查上只有靜態的有一個事件監聽器的事實。感謝您的評論。 –

1

這傢伙有同樣的問題:使用HTML

http://forums.mozillazine.org/viewtopic.php?f=25&t=518697&p=2742491 

嘗試:重寫增加新的投入。

+0

在這種情況下,你可以更具體地說明如何使用html:rewrite。 –