2013-10-24 215 views
1

我一直在試圖弄清楚這一點對於大多數一天,所以任何幫助將是非常非常歡迎...設置文本按鈕單擊事件

<body> 
<form id="form1" runat="server"> 
<script type="text/javascript"> 
    $(function() { 
    ChangeText("This is the changed text from the document ready function"); 
    }); 

    function ChangeText(newText) { 
    var editorControl = $("#txtHTMLEditor"); 

    editorControl[0].value = newText; 
    } 

</script> 
<div> 
    <ajaxToolkit:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server"> 
    </ajaxToolkit:ToolkitScriptManager> 

    <div id="divTemp" style="display: block"> 
    <asp:TextBox runat="server" ID="txtHTMLEditor" TextMode="MultiLine" Rows="25" Width="100%" Text="<b>This is test text</b>" /><br /> 
    <ajaxToolkit:HtmlEditorExtender ID="htmlEditorExtender1" TargetControlID="txtHTMLEditor" runat="server" DisplaySourceTab="true"> 
    </ajaxToolkit:HtmlEditorExtender> 
    </div> 

    <input type="button" onclick="ChangeText('This is the changed text from the button click event'); return false;" value="Perform Change"> 
</div> 
</form> 

的上面的代碼在文檔就緒事件中完全改變了html編輯器中的文本,但是如果我點擊按鈕則什麼也不做。

這兩個事件都觸發相同的javascript函數(ChangeText()),兩個實例中文本區域的值都被更改,但在按鈕單擊事件的情況下,更改不會顯示在文本區域中。

任何想法爲什麼不呢?

+0

這應該肯定會觸發按鈕點擊。 http://jsfiddle.net/maEWb/ –

+0

這很可能是你沒有正確更新textarea文本。看看它是什麼編輯器的JavaScript交互文檔。 –

回答

0

您需要通過HTMLEditorExtender的客戶端界面更改文本:

的HtmlEditorExtender的HTML內容
function ChangeText(newText) { 
    var editorControl = $find("<%=htmlEditorExtender1.ClientID%>"); 
    editorControl._editableDiv.innerHTML = newText; 
    } 
0

位置可能隨時間而變化。這就是我在工具包的7.1005版中所做的。

  var htmlSource = $('#<%= DescriptionEnglishEditor.ClientID %>Extender_ExtenderContentEditable').html(); 
      $('#<%= DescriptionFrenchEditor.ClientID %>Extender_ExtenderContentEditable').html(htmlSource); 

關鍵是要找到存儲HTML並正確引用它的DOM中的對象。