无法检查TinyMCE内容的长度

时间:2015-11-10 08:22:49

标签: javascript tinymce tinymce-4

我正在与TinyMCE合作。问题是每次我在完成标题和正文的一系列条件后尝试发布时,我得到的错误信息是最小的身体字符。如果我删除此条件,则会成功发布。如果我删除了TinyMCE并使用简单的textarea,它将再次成功发布。 TinyMCE和if之间有什么问题 - 身体状况。

<script type="text/javascript">
    $(document).ready(function() {
        $('#submit').click(function() {
            var title = $('#title').val();
            var body = $('#editor').val();
            if (title == '') {
                $('#erd').html('Please enter a title first');
                return false;
            }
            if (body.length < 500) {
                $('#erd').html('Body must not be less than 500 characters');
                return false;
            }
        });
    });
</script>

<legend>Title:</legend>
<input type="text" id="title" name="title" />
<br />
<br />
<legend>Body:</legend>
<textarea name="body" id="editor" style="border-radius:5px;"></textarea>
<br />
<script type="text/javascript" src="./js/tinymce/tinymce.min.js"></script>
<script type="text/javascript">
    tinymce.init({
        selector: "textarea#editor",
        width: "640px",
        height: "300px",
        browser_spellcheck: true,
        plugins: [
            "advlist autolink textpattern wordcount lists link image charmap preview",
            "searchreplace code fullscreen imagetools jbimages save",
            "media table contextmenu paste"
        ],
        toolbar: "insertfile undo redo | styleselect | bold italic | underline | strikethrough | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent| blockquote | link jbimages | media",
        relative_urls: false,
    });
</script>

1 个答案:

答案 0 :(得分:0)

您遇到的问题是,只有在您的代码运行后,TinyMCE才会填充textarea。除此之外,没有给出用户点击提交按钮,但点击进入提交表单。

因此,您可以做的是将测试绑定到提交表单的实际事件:

$('formSelector').submit(function() {
    if (title == '') { … }
});

此时,textarea没有来自编辑器的更新值。但是,您可以直接访问TinyMCE的内容来检查内容的长度,例如:

tinyMCE.activeEditor.getContent()
tinyMCE.activeEditor.getContent({format : 'raw'});
tinyMCE.get('content id').getContent()

您现在可以查看长度,如:

if (500 > tinyMCE.activeEditor.getContent().length) {}

另见