2016-03-08 66 views
0

我使用TinyMCE的一個不錯的文本編輯器,但現在我試圖讓我插入的文本,我想知道這樣是可能的。 我已經試過:asp.net + JavaScript的 - 傳遞價值,後臺代碼的JavaScript

HTML代碼:

<textarea id="TA_MessageInput"></textarea> 
<asp:HiddenField id="HF_MessageInput" ClientIDMode="static" runat="server"/> 

JavaScript代碼:

<script type="text/javascript"> 
    function getTinyMCEText() { 
     document.getElementById('<%= HF_MessageInput.ClientID %>').Value = tinyMCE.activeEditor.getContent(); 
     alert(document.getElementById('<%= HF_MessageInput.ClientID %>').Value); 
    }; 
</script> 

ASP.NET代碼:

ScriptManager.RegisterClientScriptBlock(this, GetType(), "", "getTinyMCEText()", true); 
String text = HF_MessageInput.Value; 

的JavaScript給我的警告是,標記已被填充,不幸的是它不適用於ASP.NET,這表示它仍然爲空。

EDIT

的OnClientClick = 「tinyMCE.triggerSave(FALSE,TRUE);」

^這是問題... :)

+0

您需要了解_server-side_code和_client-side_code之間的區別。你的整個方法不可能工作。你需要AJAX(或者在提交之前分配值)。 – SLaks

+0

解釋你在這裏想要完成的事情。你的問題沒有意義。 –

+0

由於我無法制作TinyMCE runat =「server」所需的textarea,我想將我插入的文本傳遞給其他內容,以便我的服務器可以讀取數據並將其放入數據庫中。 – runefist

回答

0

我想你可能會錯誤地接近這一點。 TinyMCE文本區域可以從服務器端代碼訪問,而無需使用JavaScript。例如:如果你搜索

var textValue = TA_MessageInput.InnerHtml 

<asp:TextBox ID="TA_MessageInput" runat="server" ClientIDMode="Static" 
    TextMode="MultiLine" Rows="30" style="width:95%" CssClass="tinymce" /> 
從你的服務器端代碼

然後,你就可以訪問TinyMCE的字段的值,像任何其他文本框字段(取決於VB/C#) 「ASP.NET TinyMCE」,你應該能夠找到很多工作的例子。例如: http://www.intertech.com/Blog/integrating-tinymce-4-0b3-into-an-asp-net-4-0-project/

+0

這不起作用d:TA_MessageInput.Text只是說,這是空字符串 – runefist

+0

對不起,這應該是.InnerHtml(或innerText屬性)。另外,您可能需要在頁面上將ValidateRequest設置爲false。這是由於該領域內嵌入的html。還有一個類似的問題和答案在這裏: –

+0

http://stackoverflow.com/questions/24643595/how-can-i-get-the-tinymce-html-content-from-within-ac-sharp-asp-net-應用 –

相關問題