正在做一个论坛,打算让用户输入文章时,能够进行简单的处理,但不打算使用复杂的在线编辑系统
我的设想是用户点击按钮,在文本框中插入一些代码。
从一些网站下了段jS代码,但只能使用客户端的<textarea>,不能使用<textbox>,这样,服务器端就不能得到<textarea>的值,如果把<textarea>转换成服务器控件,js代码就不能正常使用。
请问怎么解决?源码:
(.aspx)
<body >
<form id="Form1" method="post" runat="server">
<TEXTAREA onkeydown="quickpost()" onfocus="getActiveText(this)" onclick="getActiveText(this)"  name="atc_content" rows="15" cols="60" onchange="getActiveText(this)" id="TEXTAREA1"></TEXTAREA><asp:Button id="Button1" runat="server" Text="Button"></asp:Button>
</form><script language="javascript">
var text = "";
function getActiveText(selectedtext)
{
text = (document.all) ? document.selection.createRange().text : document.getSelection();
if (selectedtext.createTextRange) 
{
selectedtext.caretPos = document.selection.createRange().duplicate();
}
return true;
}function bold() {
AddTxt=""+text+"";
AddText(AddTxt);
}function AddText(NewCode) 
{
if (document.Form1.atc_content.createTextRange && document.Form1.atc_content.caretPos) 
{
var caretPos = document.Form1.atc_content.caretPos;
caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? NewCode + ' ' : NewCode;

else 
{
document.Form1.atc_content.value+=NewCode
}
document.Form1.atc_content.focus();
}
</script>
</body>
(.aspx.cs)
private void Button1_Click(object sender, System.EventArgs e)
{
string texts=atc_content.value;//无法得到文本框atc_content的内容,atc_content不存在
}该怎么办?

解决方案 »

  1.   

    <TextArea ................. runat="server">private void Button1_Click(object sender, System.EventArgs e)
    {
    string texts=atc_content.InnerText;
    }
      

  2.   

    从一些网站下了段jS代码,但只能使用客户端的<textarea>,不能使用<textbox>,这样,服务器端就不能得到<textarea>的值,如果把<textarea>转换成服务器控件,js代码就不能正常使用。
    --------------------------------------------------
    客户端<textarea>可以通过提交给服务器端的方法得到.
    textarea 转换回服务器控件加 ruanat="server"就可以了,js代码也不受影响的,怎么会不能正常使用.
      

  3.   

    另类方法:
    还是用客户端textarea,再放一个隐藏的服务器textarea,当提交时,通过js把客户端的拷备到服务器的textarea.
    方法比较笨,更好的方法没想到,忘高手指教!
      

  4.   

    加上断点追踪一下就明白了!
    or
    page_load 中加入
    Button1.Attributes.Add("OnClick","return Check()");
      

  5.   

    按照 Eddie005(暴走005) 的方法:
    <TextArea ................. runat="server">private void Button1_Click(object sender, System.EventArgs e)
    {
    string texts=atc_content.InnerText;
    }js不能正常执行!!!!当执行JS中的bold()函数时,提示:
    document.Form1.atc_content.createTextRange为空或不是对象
      

  6.   

    把 js  放在  页面 最后 使用!<script>document.getElementById("atc_content").Inner.Text</script>
      

  7.   

    后台 中!~
    Page.RegisterStartupScript("Innertext","<script>document.getElementById("atc_content").Inner.Text</script>");
      

  8.   

    1.
    <TextArea ................. runat="server">private void Button1_Click(object sender, System.EventArgs e)
    {
    string texts=atc_content.InnerText;
    }//对不起,有剽窃嫌疑
    2.
    private void Button1_Click(object sender, System.EventArgs e)
    {
    string texts=Request.QueryString["atc_content"].ToString();
    }