Jquery HTMLEditor(来自AJAXToolkit)检查内容是否为空

Jquery HTMLEditor(来自AJAXToolkit)检查内容是否为空,jquery,asp.net,Jquery,Asp.net,我的aspx文件中有一个HTMLEditor,id=“txtText” 我正在尝试编写一个JQuery函数来检查编辑器的内容是否为空 我最初有: function check() { if($('#txtText').val() == '') { return false; } return true } 然而,当我添加了一个警报框来找出为什么这不起作用时。我意识到HTMLEditor的.val()属性总是未定义的(无论编辑器是否有文本) 我尝

我的aspx文件中有一个HTMLEditor,id=“txtText”

我正在尝试编写一个JQuery函数来检查编辑器的内容是否为空

我最初有:

function check()
{
    if($('#txtText').val() == '')
    {
         return false;
    }
    return true
}
然而,当我添加了一个警报框来找出为什么这不起作用时。我意识到HTMLEditor的.val()属性总是未定义的(无论编辑器是否有文本)

我尝试使用$('#txtText').content(),这是我访问代码隐藏(C#)中数据的方式,但在JQUERY中似乎不起作用

在做了一些研究之后,我发现了这个网站:

我有非常丰富的代码,因此我还制作了自己的自定义编辑器,它继承了AJAXToolkitEditor中的编辑器

<cc1:CustomEditor ID="txtEditor" Height="600px" runat="server" />
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
<asp:Button ID="Button1" OnClientClick="getImageContent()"
    runat="server" Text="Button" OnClick="saveContent" />
<asp:HiddenField ID="HiddenField1" runat="server" />
}


行变量编辑器=$find(“txtEditor”)是一个空值。

您可能需要使用一点服务器脚本(
)获取生成的(类似于
ctl00\u txtEditor

HTMLEditor:

排序hack-ish,但这应该确定控件客户端中是否有内容(服务器端很容易通过
txtEditor.content
检查)

jQuery:

$('#<%=txtEditor.ClientID%>').find('iframe').eq(2).contents().find('body').html()
$('#<%=txtEditor.ClientID%>').val()
或JavaScript

document.getElementById('<%=txtEditor.ClientID%>').value
document.getElementById(“”).value

您可能需要使用一点服务器脚本(
)获取生成的(类似于
ctl00\u txeditor

HTMLEditor:

排序hack-ish,但这应该确定控件客户端中是否有内容(服务器端很容易通过
txtEditor.content
检查)

jQuery:

$('#<%=txtEditor.ClientID%>').find('iframe').eq(2).contents().find('body').html()
$('#<%=txtEditor.ClientID%>').val()
或JavaScript

document.getElementById('<%=txtEditor.ClientID%>').value
document.getElementById(“”).value

哪种HTMLEditor?它使用Iframe吗?它来自AJAXControlToolkitSo ya,它使用Iframe来呈现内容。您需要指向此iframe的内容体,而不是直接指向#txtText元素。假设页面中没有其他iframe,您可以尝试此方法:$('iframe').contents().find('body').html()@我认为这是正确的方法。@我尝试了您的代码片段,但它是空值。哪种类型的HTMLEditor?它使用Iframe吗?它来自AJAXControlToolkitSo ya,它使用Iframe来呈现内容。您需要指向此iframe的内容体,而不是直接指向#txtText元素。假设页面中没有其他iframe,您可以尝试此方法:$('iframe').contents().find('body').html()@我认为这是正确的方法。@我尝试了您的代码片段,它是一个空值。我为我的文本框添加了clientdmode=AutoID,并尝试运行您的建议JS。但是,在控制台(谷歌浏览器)中,它说“CytType Error:不能读取NULL属性值‘NULL’,您可以考虑使用它,演示站点甚至建议:<代码>我们建议您使用新的HTMLIDITORTER而不是HTMLeDebug < /Cord>。上面的例子将适用于此control@Rhs更新的答案为
HTMLEditor
添加了一个解决方案,因为它在一个iframe中,检查值在客户端有点粗糙,但在使用此控件时检查服务器端相当简单,这可能是首选。我尝试了$('#').find('iframe').eq(2).contents().find('body').html()它返回了一些函数定义。您有可以共享的测试站点吗?上面的脚本在演示站点上运行良好(在将jQuery添加到页面之后)。你确定最后一个paren
()
是在
html
之后吗?我为我的文本框添加了clientdmode=AutoID,并尝试运行你的建议JS。但是,在控制台(谷歌浏览器)中,它说“CytType Error:不能读取NULL属性值‘NULL’,您可以考虑使用它,演示站点甚至建议:<代码>我们建议您使用新的HTMLIDITORTER而不是HTMLeDebug < /Cord>。上面的例子将适用于此control@Rhs更新的答案为
HTMLEditor
添加了一个解决方案,因为它在一个iframe中,检查值在客户端有点粗糙,但在使用此控件时检查服务器端相当简单,这可能是首选。我尝试了$('#').find('iframe').eq(2).contents().find('body').html()它返回了一些函数定义。您有可以共享的测试站点吗?上面的脚本在演示站点上运行良好(在将jQuery添加到页面之后)。你确定最后一个paren
()
html
之后吗?