提交后将重点放在tinyMCE上

时间:2014-07-11 07:33:12

标签: jquery tinymce focus

我正在使用tinyMCE编辑器。如果jQuery验证失败,我需要将注意力集中在tinyMCE文本区域。我尝试过多种方法,但都未能设置焦点。 我试过了:     

    tinyMCE.activeEditor.focus;
    
我也试过这个:     
    tinyMCE.activeEditor.execCommand('mceFocus', false, 'textarea_id'); 
    
并且     
    $("#lCmsContent").tinyMCE().focus();
    

实际上我正在使用jQuery验证,所以如果在文本编辑器的情况下验证失败,我需要设置焦点。为此,我的代码如下:     

        $('.form_validation_cmspage').validate({
                onkeyup: false,
                errorClass: 'error',
                validClass: 'valid',
                highlight: function(element) {
                    $(element).closest('div').addClass("f_error");
                },
                unhighlight: function(element) {
                    $(element).closest('div').removeClass("f_error");
                },
                errorPlacement: function(error, element) {
                    $(element).closest('div').append(error);
                },
                rules: {
                    'vCmsTitle'     : { required        : true},
                    'lCmsContent'       : { required        : true},
                    'status'            : { required        : true}
                }, messages: {
                    'vTitle'        : { required:   "This field is required!"},
                    'lCmsContent'       : { required        : "Description is required!"},
                    'status'            : { required:  'Status field is requerid!' }
                },ignore: ':hidden:not(.chzn_a)',
                invalidHandler: function(form, validator) {
                    var errors = validator.numberOfInvalids();
                    if (errors) {
                        if(validator.errorList[0].message == 'Description is required!')
                        {
                            tinyMCE.activeEditor.execCommand('mceFocus', false, 'lCmsContent');
                        }
                    }
                }
            })
    

对于文本编辑器:

<textarea id="lCmsContent" name="lCmsContent"></textarea>

提前致谢!!

2 个答案:

答案 0 :(得分:0)

试试这个

$("#your_texbox_id").focus();

<强>更新

我认为&#34; activeEditor&#34;是一个tinymce初始化的变量。 这应该有效:

activeEditor.execCommand('mceFocus',false,'id_of_textarea');

答案 1 :(得分:0)

在我的情况下,只需设置auto_focus: '#textarea_id'

tinymce.init({
    selector: '#textarea_id',
    auto_focus: '#textarea_id'
});

在TinyMce文档中也是 - https://www.tinymce.com/docs/configure/integration-and-setup/#auto_focus