2010-02-07 136 views
2

我試圖放在一起,一旦用戶執行特定操作,將添加表單元素(輸入複選框)到窗體的一些jQuery代碼。稍後用戶可以提交此表單。注入表單元素後重新加載DOM?

我完全不熟悉jQuery,但我已經設法組合了一些幾乎可行的代碼。這裏是我得到的:

$("#someDivID").load("myPage.asp?id=x"); 

myPage.asp生成一些表單元素,這一切都很好地顯示在頁面上。

但是,一旦我提交(通過POST)表單,新的表單元素實際上並沒有發佈。這裏的表單提交功能:

$(document).ready(function() { 

    var options = {}; 

    // bind to the form's submit event 
    $('#MyFormID').submit(function() { 
     $(this).ajaxSubmit(options); 
     return false; 
    }); 
}); 

你要原諒我,如果我完全錯了這一點,但我猜這是因爲DOM最初加載後產生的新的表單元素。我是否必須重新加載DOM(以及如何如何?),還是應該以不同的方式完成整個事情?

最好的問候, 亞當

回答

3

這不是增加更多的元素,形式的問題。

您需要確保輸入元素(無論是複選框或其他)被附加(加載在您的情況)到表單元素本身或表單的子元素。此外,你檢查輸入的名稱屬性?沒有名字,輸入將不會被髮布。

BTW:ajaxSubmit做什麼?

+0

ajaxSubmit是我認爲我需要的jQuery表單插件的一部分。 但是,你的回答讓我朝着正確的方向前進。表單和輸入元素愚蠢地放置在兄弟元素div元素中,所以在將輸入元素包裹到所有輸入元素後,現在所有東西都完美無缺。非常感謝! – adampierre

+0

只是爲了澄清。標記是這樣的:

..
,現在已經改爲
adampierre

+0

不客氣。很高興我能幫上忙。 – aefxx

0

安裝Firebug並查看輸入元素放置在文檔中的位置。如果他們不在表格塊內,他們將不會被提交。 (正如aefxx所說,如果他們沒有給出名稱,他們將不會出現在HTTP請求中。)

0

很可能你的問題是「someDivID」元素不是「MyFormID」的子/後代,因此不會發布。

確保將加載窗體控件的div放在窗體中。

如果這沒有幫助,請考慮發佈您的HTML的相關部分進一步協助。