如何让TinyMCE和Jquery验证一起工作?

cho*_*bo2 5 jquery tinymce jquery-validate

我正在使用jquery validate和tinquce的jquery版本.

我发现这段代码使得每次有变化时都能自我验证.

你好

我正在使用jquery validate和我的jquery tinymce,所以我在我的代码中有这个

    // update validation status on change
    onchange_callback: function (editor)
    {
        tinyMCE.triggerSave();
        $("#" + editor.id).valid();
    },
Run Code Online (Sandbox Code Playgroud)

然而,这有一个问题.如果用户从单词复制某些东西,它会带来所有垃圾样式,通常超过50,000个字符.这超过了我允许用户输入的字符数量.

所以我的jquery验证方法告诉我他们超过了限制.虽然tinymce已经清理了那个混乱,但现在用户可能还没有超过限制.

然而,信息仍然在那里.

那么有一个更好的函数调用我可以把它放进去吗?也许告诉tinymce在粘贴发生时延迟有效,或者可能是一个不同的回调?

有人有任何想法吗?

小智 11

经过几个小时摆弄如何使用TinyMCE编辑器进行验证后,我终于发现有必要告诉验证插件不要忽略隐藏字段(因为初始化tinyMCE时隐藏了原始textarea).因此,简而言之,解决方案是:

$.validator.setDefaults({
    ignore: ''
});
Run Code Online (Sandbox Code Playgroud)

这段代码告诉jquery Validation Plugin检查隐藏字段......然后你通常可以......

 onchange_callback: function (editor)
{
    tinyMCE.triggerSave();
    $("#" + editor.id).valid();
},
Run Code Online (Sandbox Code Playgroud)

这不是原始问题的直接答案 - 我知道.但是由于这个页面被谷歌称为"jquery validate tinymce",我认为这是一个在这里提及它的好地方.

danludwig在这里提到了这一点:无法让TinyMCE使用jQuery Unobtrusive Validation


Sta*_*arx 8

哦是的,我也遇到了这个问题.

所以,我通过调用按钮的click事件验证来修复它.

$("#buttontosave").click(function() {
         tinyMCE.triggerSave();
         var status;
         status = $("#myform").valid(); //Validate again
         if(status==true) { 
             //Carry on
         }
         else { }
});
Run Code Online (Sandbox Code Playgroud)

这个工作试试吧.

有关其他资源的尝试

http://rmurphey.com/blog/2009/01/12/jquery-validation-and-tinymce/

http://tinymce.moxiecode.com/punbb/viewtopic.php?id=21588

http://www.experts-exchange.com/Programming/Languages/Scripting/JavaScript/Jquery/Q_23941005.html