在提交页面时尝试获取textarea的值

时间:2012-07-30 18:53:01

标签: c# jquery

您好我在控制页面上有textarea,使用jQuery我已经'变成'一个简单的HTML文本编辑器(允许用户加入文本并创建简单的无序列表)。

当提交页面时,我试图获取textarea中的值并处理到数据库中(保留textarea中的html标记)但是我找不到控件,因此无法获取里面的标记。

所以页面就像(它在工作的服务器上,所以这是来自内存)。

<div id="zone">
   <textarea id="txtDescription" cols="20" rows="2"></textarea>
</div>

提交表单时我正在运行

HtmlTextArea zArea = (HtmlTextArea)Page.FindControl("txtDescription");

虽然我没有错误,但zArea的值始终为null。

我可能会以错误的方式解决这个问题,所以任何帮助都会受到欢迎。

谢谢, 克雷格

EDITED * * 的 应用runat = server方法允许我引用代码隐藏页面中的值,但我现在正在努力用jQuery“找到”控件。母版页包含jQuery代码,如下所示:

<script type="text/javascript">
    $(document).ready(function () {
        $('#ctl00_myJobZoneAddition_txtHTMLArea').jqte();
    });
</script>

此母版页面引用了control.ascx页面

<myWeb:JobZoneAddition ID="myJobZoneAddition" runat="server"/>

并且在此控件上存在实际文本区域:

<textarea id="txtHTMLArea" runat="server" cols="20" class="jobDescription" name="txtHTMLArea" rows="8"></textarea>

如果没有命名ctl00_myJobZoneAddition_txtHTMLArea,如何获得访问此textarea的任何帮助都会受到极大的欢迎。

再次感谢

2 个答案:

答案 0 :(得分:0)

您好,您必须将值为“server”的属性runat添加到您的控件

 <textarea id="txtDescription" cols="20" rows="2" runat="server"></textarea>

答案 1 :(得分:0)

通过将 runat =“server”属性添加到textarea控件,您将能够从代码隐藏中访问您的控件,如下所示:

string description = txtDescription.value;

编辑:根据您对我的回答的评论,您似乎需要使用客户端ID。当您向控件添加 runat =“server”时,它将在代码隐藏中显示。但是,您现在无法从客户端(例如您的jQuery)以相同的方式访问该控件。您必须使用控件的 ClientID ,而不是通常使用的ID属性。这是一个例子:

$(document).ready(function () {
    $('#<%= txtDescription.ClientID %>').click(...)
});

如果您运行应用程序并查看源代码,则可以看到'txtDescription'被唯一值替换。此值称为客户端ID。