使用 innerHtml 设置文本区域内容后获取文本区域内容

本文关键字:区域 获取 取文本 innerHtml 使用 置文本 | 更新日期: 2023-09-27 18:37:10

我正在 asp.net 中处理一些需要允许用户更改文本区域内信息内容的内容。发生的情况是,我通过获取外部.txt、.html或.rtf文件中的信息来设置文本区域内容,然后使用 innerHtml 将其设置到文本区域中。

至于检索数据,我也使用 innerHtml 在页面后面的.cs文件中执行此操作。问题是,当我尝试这样做时,即使我替换了每一行文本,我也会恢复以前设置的内容。例如,如果我最初先设置了"这是初始文本",然后将其全部替换为"新文本",则innerHtml只会给我"这是初始文本"。

有没有其他方法可以获取新文本或让 innerHtml 做我想做的事?

编辑:忘记包含代码。

在代码的aspx端,我只有一个简单的文本区域,
<textarea id="TextArea1" cols="80" rows="10" runat="server"></textarea>

在ASPX方面.cs,

    protected void Page_Load(object sender, EventArgs e)
    {
        ces = new ContentEditorService.ContentEditorService();
        strRtfDir = Server.MapPath("Testfile.rtf");
        string strContents = ces.loadEditorContents(strRtfDir);
        TextArea1.InnerText = strContents;
    }

其中 CES 加载一个单独的.cs文件,用于加载和保存文本。

至于获取内容,我正在使用

    protected void Button1_Click(object sender, EventArgs e)
    {
        string strTxtArea = TextArea1.InnerHtml;
        System.Diagnostics.Debug.WriteLine(strTxtArea);   
        //ces.saveEditorContents(strContents, strRtfDir);
    }

它获取内容并将它们打印出来现在在 Visual Studio 的调试窗口中,只是为了看看我是否设法获取了更改的文本。

使用 innerHtml 设置文本区域内容后获取文本区域内容

将代码更改为以下内容:

    if (!IsPostBack)
    {
        ces = new ContentEditorService.ContentEditorService();
        strRtfDir = Server.MapPath("Testfile.rtf");
        string strContents = ces.loadEditorContents(strRtfDir);
        TextArea1.InnerText = strContents;
    }

因为即使您单击了 Button1,Page_Load也会始终被执行。

您可以使用 jquery 获取文本区域内的值

var text = $('#yourTextAreaId').html();

var text = $('#yourTextAreaId').val();