2011-11-11 21 views
0

我將複選框添加到a,方法如下設置innerHtml屬性。如何從ASP.NET中的Javascript添加複選框獲取表單值?

function ShowCheckbox(uid) { 
    document.getElementById("samplediv").innerHTML += "<input type='checkbox' value='on' name='box_" + uid + "' id='box_" + uid + "'/> Some Text Here"; 
} 

這是一個.aspx頁面中

我想從C#代碼隱藏檢索動態複選框的值,但我沒有發現他們被調回上。我已經閱讀了IE問題(IE8之前)關於它不能很好地處理name屬性的問題,但是我在IE9中,如果使用innerHtml方法而不是直接添加到DOM,顯然這不是問題。

我嘗試通過Request.Form和Request.Params在代碼隱藏中請求值,但沒有任何運氣。

任何想法爲什麼動態複選框沒有得到回傳?

+1

您在發佈表單時是否實際檢查了複選框? –

+0

是的,它們從瀏覽器中直觀地檢查。 –

+1

這是sampleDiv在你的代碼片段位於'

'標籤之間嗎? –

回答

-1

一旦你做了表單提交,所有的數據將被髮送到服務器。然後,ASP.NET引擎將嘗試創建HTML控件的服務器端「表示」。它會嘗試通過使用ID或名稱來將它的Controls集合與來自客戶端的數據進行匹配。因此,您需要在頁面啓動地圖數據和控件之前創建服務器端輸入。換句話說,您需要讓頁面在服務器上的頁面的Controls集合中找到相同的控件。所以,我認爲你需要做Page_Init什麼控制的創作...

這裏是ASP.NET動態控件的一個很好的解釋:你可以考慮使用jQuery的http://geekswithblogs.net/shahed/archive/2008/06/26/123391.aspx

1

。將元素追加到DOM中非常簡單,它很有用。

function ShowCheckbox(uid) { 
    $("<input type='checkbox' value='on' name='box_" + uid + "' id='box_" + uid + "'/>") 
    .appendTo($("#sample"); 
} 
相關問題