您好我在控制页面上有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的任何帮助都会受到极大的欢迎。
再次感谢
答案 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。