8

我正在尝试在填写某些表单字段时启用提交按钮。我找到了一段有效的 javascript 代码,但是我对由 tinymce 转换的 textarea 字段有问题......如何捕捉它?

我的html:

<form id="form_id1">
<fieldset>
<legend>Personal</legend>
Name: <input type="text" size="30" /><br />
Email: <input type="text" size="30" /><br />
Date of birth: <input type="text" size="10" /><br />
Address : <textarea size="30"></textarea><br />

</fieldset>
<input type="submit" value="Submit" />
</form>

我的JavaScript:

$(document).ready(function()
{

    $('#form_id1 input:submit').attr("disabled", true);
    var textCounter = false;
    $('#form_id1 input:text, #form_id1 textarea').keyup(check_submit);

    function check_submit() {
        $('#form_id1 input:text, #form_id1 textarea').each(function()
          {
            if ($(this).val().length == 0) {
                textCounter = true;
                return false;
               }
            else {
                textCounter = false;
            }
         });

        $('#form_id1 input:submit').attr("disabled", textCounter);
    }
});

我的tinymce初始化:

tinymce.init({
                selector: "textarea",
                language: 'fr_FR',
                image_advtab: true,
                menubar:false,
                forced_root_block: false,
                plugins: ["link","code","media","image","textcolor", "emoticons"],
                toolbar: "bold italic forecolor backcolor alignleft aligncenter alignright alignjustify link unlink image media emoticons",
             });

谢谢

4

4 回答 4

21

在 tinymce 初始化中添加:

setup: function(ed) {
    ed.on('keyup', function(e) {
        console.log('Editor contents was modified. Contents: ' + ed.getContent());
        check_submit();
    });
}

请记住,您可能需要找到您的编辑器实例而不是 textarea 才能获得实际值。如果你让 textarea 有id="textarea-tiny-mce"

tinymce.get('textarea-tiny-mce').getContent();
于 2013-06-26T18:19:03.203 回答
4
    window.onload = function () {
        tinymce.get('content').on('keyup',function(e){
            console.log(this.getContent().replace(/(<[a-zA-Z\/][^<>]*>|\[([^\]]+)\])|(\s+)/ig,''));
        });
    }
于 2014-05-18T18:06:57.480 回答
0
tinymce.init({    
        setup: function (editor) {
            editor.on('keyup', function (e) {
                console.log(e);
                //custom logic  
            });
        }
     });
于 2017-11-28T12:35:32.797 回答
0

请在 tinymce.init 中进行以下更改

tinymce.init({
                selector: "textarea",
                setup: function(editor) {
                editor.on('keyup', function(e) {
                console.log('edited. Contents: ' + editor.getContent());
                check_submit();
                });
                }
                language: 'fr_FR',
                image_advtab: true,
                menubar:false,
                forced_root_block: false,
                plugins: ["link","code","media","image","textcolor", "emoticons"],
                toolbar: "bold italic forecolor backcolor alignleft aligncenter alignright alignjustify link unlink image media emoticons",
             });

有关更多详细信息,请参阅以下参考。

https://www.tiny.cloud/docs/advanced/events/

于 2018-12-09T19:26:19.657 回答