Mil*_*kov 19 javascript fckeditor ckeditor
我有一个包含几个字段的HTML表单.其中一个是由CKEditor管理的textarea.
当用户想要提交表单时,我想检查他是否在所有字段中输入了值.
我知道如何检查CKEditor控件是否包含任何内容,但它可能是"空"HTML标记,其中没有任何文本.
我该如何查看文字?
服务器端我使用的是像PHP的trim(strip_tags($ content))之类的东西,所以我想在JavaScript中使用相同的东西.
使用jQuery的解决方案也是可用的.
Sam*_*ham 30
这将有效:
$("#editorContainer iframe").contents().find("body").text();
Run Code Online (Sandbox Code Playgroud)
这将只包含文本,而不包含任何html标记.
UPDATE
它肯定适用于CKEditor演示页面.使用Firefox和Firebug,转到Firebug控制台,然后输入:
$("#demoInside iframe").contents().find("body").text();
Run Code Online (Sandbox Code Playgroud)
控制台将在编辑器中打印出文本,没有html标签.确保在特定应用程序中选择器正确.您可以像这样测试您的选择器:
$("#demoInside iframe").contents().find("body").length;
Run Code Online (Sandbox Code Playgroud)
这应该等于1.如果它是0,你的选择器是错误的.
更新2
同样,我的代码仍然正确,它仍然适用于该页面.你只需要正确的选择器.在您链接到的页面上,它是<span>带有ID的cke_editor1.该特定页面不使用jQuery,因此需要一些额外的工作来证明此示例有效.安装FireQuery,"jqueryify"页面,然后在Firebug控制台中执行此操作(注意您必须使用jQuery而不是$.这就是FireQuery的工作原理).
jQuery("#cke_editor1 iframe").contents().find("body").text();
Run Code Online (Sandbox Code Playgroud)
简而言之,请确保您有正确的选择器来访问您的iframe.是否从a <div>或a 创建CKEditor <textarea>并不重要.只要您可以选择<iframe>CKEditor注入DOM,您就可以使用它.contents().find("body").text()来获取该iframe的文本.你测试了你的jquery选择器,看看是否.length == 1?
a c*_*der 15
CKeditor有自己的内置函数,用于在文本编辑器中检索数据:
function CheckForm(theForm)
{
textbox_data = CKEDITOR.instances.mytextbox.getData();
if (textbox_data==='')
{
alert('please enter a comment');
}
}
Run Code Online (Sandbox Code Playgroud)
您可以使用以下代码段来检查 ckeditor 是否有一些文本。
var _contents = CKEDITOR.instances.editor1.document.getBody().getText();
if (_contents == '') {
alert('Please provide the contents.') ;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
27555 次 |
| 最近记录: |