2012-10-10 191 views
3

是否有可能做這樣的事情追加ASP.Net元素(

$("#popupForgot").append("<asp:TextBox ID='emailTextF' runat='server' Width='200px' Text='" + $.cookie("forLogin") + "'></asp:TextBox>") 

我需要一個asp.net元素添加到一個div標籤,這將有cookie的值,因爲它是文本。我已經嘗試使用上面的代碼,它不起作用。

預先感謝您

+0

您只能追加HTML 控件而不使用jQuery的ASP.NET控件 –

回答

4

這是不可能做到這一點,因爲asp:TextBox通過服務器端渲染,而jQuery的工作在客戶端。

但是你可以用asp:TextBox控制使您的文本框,然後你可以改變它的使用jQuery值:

$("#emailTextF").text($.cookie("forLogin")); 

UPDATE

事實證明,asp:TextBox呈現ID不等於id參數(在asp:TextBox內部使用),試試這個:

$("#<%= emailTextF.ClientID %>").text($.cookie("forLogin")); 
+0

我試過在它不起作用之前。 –

+0

你可以發佈你的文本框的HTML?你是否在'document.ready'中執行了JavaScript代碼? – Zbigniew

+0

ASP將更改文本框的ID;您需要確保生成的ID在JavaScript中可用,或者在文本框上設置適當的屬性以不更改ID。 – Servy

1

您的代碼將在瀏覽器中運行,這意味着您asp:TextBox將不會被服務器處理。所以,總之,不。

2

JQuery最終只是JavaScript代碼。 Javascript代碼在客戶端的瀏覽器中運行。

ASP標籤是一個服務器端構造;他們將被轉換爲<input type="Text"/>字段(或其他多行文本框),然後再發送到客戶端的瀏覽器。

這兩個是完全分離的概念,它們不能直接相互作用。

如果你想通過JQuery添加一個文本框,它不能是一個ASP文本框,它需要是一個HTML文本框。如果你確實需要添加一個ASP文本框(儘管你看起來並不需要它),那麼你需要回發到服務器來添加它。 (如果需要,您可以通過AJAX異步執行回發。)

0

在數據發送到客戶端之前,您無法執行此操作,導致在服務器端處理ASP.NET標記。
的方式是:
前-add這個ASP.NET控件,並改變它的值由JQuery的,
- 如果你需要在服務器上從表單控件添加動態,使用樣本HTML標記,並獲取數據。