2013-03-04 3 views
1

Я делаю функцию цитаты на своем форуме.
Когда пользователь нажимает Quote link, я хочу добавить контент из этого сообщения в текстовое поле (txtPost) - контент не проблема (я пробовал alert(content), и он работает).
Но текст в текстовом поле не освежает - alert(txtPost.value) покажите некоторое добавленное содержимое и т. Д., Но текстовое поле все еще пусто. Зачем? Как его решить?Добавление текста в текстовое поле по javascript

Сообщение: Код

<asp:HyperLink ID="quotebutton" CssClass="quotebutton" OnClick="javascript:addQuote('somecontent');" runat="server">Quote</asp:HyperLink> 

Textbox:

функция
 <nforum:Emoticons ID="emoticonInclude" runat="server" /> 
     <div style="width: 604px; margin-left: 198px;"> 
      <asp:TextBox ID="txtPost" runat="server" TextMode="MultiLine" Rows="14" Width="600" 
       ClientIDMode="Static"></asp:TextBox> 
     </div> 

Javascript:

function addQuote(content) { 
    var txtPost = document.getElementById("txtPost"); 
    alert(content); 
    txtPost.value = txtPost.value + content; 
    alert(txtPost.value); 
} 

INFO !!

Я использую редактор tinyMCE. Все еще не освежающий контент, в то время как tinyMCE подключен к этому текстовому окну. Как это сделать?

<script type="text/javascript"> 
    tinyMCE.init({ 
     // General options 
     mode: "exact", 
     elements: "txtPost", 
     theme: "advanced", 
     plugins: "insertcode", 
     // Theme options 
     theme_advanced_buttons1: "bold,italic,underline,strikethrough,|,formatselect,|,bullist,numlist,|,link,unlink,insertcode", 
     theme_advanced_buttons2 : "", 
     theme_advanced_buttons3 : "", 
     theme_advanced_toolbar_location: "top", 
     theme_advanced_toolbar_align: "center", 
     theme_advanced_resizing: true, 
     remove_linebreaks: false, 
     relative_urls: false, 
     content_css: "/css/nforumeditor.css" 
    }); 

</script> 

ПРОБЛЕМА решаемые

Для tinyMCE-

function addQuote(content) { 
    tinyMCE.execCommand('mceInsertContent', false, content); 
    return false; 
} 

ответ

0

Tou должен return false; в вашей функции и предотвращения обратной передачи.

0

Чтобы использовать сервер управления в JavaScript вы должны позвонить/получить ClientID серверного элемента управления

HTML

<asp:HyperLink ID="quotebutton" CssClass="quotebutton" OnClick="javascript:return addQuote('somecontent');" runat="server">Quote</asp:HyperLink> 

Javascript

function addQuote(content) { 
var txtPost = document.getElementById("<%= txtPost.ClientID %>"); 
txtPost.value = txtPost.value + content; 
return false; 
} 
+0

Между Адиля и вами, вы нашли решение. Или вы добавляете решение Адиля к своему ответу, либо он ваш, и один из вас получает мой +1. :) – Bazzz

0
<asp:TextBox ID="txtPost" runat="server"></asp:TextBox> 
<asp:HyperLink ID="quotebutton" runat="server" onclick="javascript:addQuote('some content');">Quote</asp:HyperLink> 

function addQuote(content) { 
     var txtPost = document.getElementById('<%= txtPost.ClientID %>'); 
     txtPost.value = txtPost.value + content; 
    } 
Смежные вопросы