Jquery验证和TinyMCE 4.0.1

时间:2013-07-10 23:38:02

标签: jquery validation tinymce

自从我更新到TinyMCE版本4.0.1后,我的Jquery验证不再有效。在版本3.x中,脚本可以正常运行。我可以使用onchange_callback函数吗??

以前有没有人有过这个想法或同样的问题?

我的TinyMCE配置:

tinyMCE.init({
    language : "de",      
    mode : "textareas",
    theme : "modern",
    height: 250,

    statusbar : false,
    relative_urls : false,


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

    // Theme options        
    ...

</script>

我的验证码:

    $(document).ready(function() {

        // update underlying textarea before submit validation          
        tinyMCE.triggerSave();

    ...
    ...

validator.focusInvalid = function() {
        // put focus on tinymce on submit validation    
        if( this.settings.focusInvalid ) {
            try {
                var toFocus = $(this.findLastActive() || this.errorList.length && this.errorList[0].element || []);
                if (toFocus.is("textarea")) {
                    tinyMCE.get(toFocus.attr("id")).focus();
                } else {
                    toFocus.filter(":visible").focus();
                }               
            } catch(e) {
            }           
        }

2 个答案:

答案 0 :(得分:0)

使用config

检测tinyMCE 4的变化
tinymce.init({
    ...
    setup: function(editor) {
        editor.on('change', function(e) {
            console.log('change event', e);
        });
    }
});

答案 1 :(得分:0)

如果你也遇到这个问题意味着当你使用tinymce html编辑器时所需的验证不起作用,所以我有一个解决方案,请关注它,我希望你的问题解决,检查下面的代码 使用nuget包在您的应用程序中安装tinymce jquery包 创建一个这样的模型 型号

    [Required(ErrorMessage = "Please enter About Company")]
    [Display(Name = "About Company : ")]
    [UIHint("tinymce_jquery_full"), AllowHtml]
    public string txtAboutCompany { get; set; }

CSHTML或VIEW

 <div class="divclass">
       @Html.LabelFor(model => model.txtAboutCompany, new { @class = "required" })
       @Html.EditorFor(model => model.txtAboutCompany)
       <span class="field-validation-error" id="AC" style="margin:9px 0 0 57px;">/span>
 </div>

这是jquery

$("#BusinessProfile").click(function () {
        var aboutC = $("#txtAboutCompany").val()
        var pinfo = $("#txtProductinfo").val();
        if (aboutC == "" && pinfo == "") {
            $("#AC").append("").val("").html("Please enter about company")
            $("#PI").append("").val("").html("Please enter product information")
            $("#bpform").valid();
            return false;
        } else if (aboutC == "") {
            $("#PI").append("").val("").html("")
            $("#AC").append("").val("").html("Please enter about company")
            $("#txtAboutCompany").focus();
            $("#bpform").valid();
            return false;
        } else if (pinfo == "") {
            $("#AC").append("").val("").html("")
            $("#PI").append("").val("").html("Please enter product information")
            $("#txtProductinfo").focus();
            $("#bpform").valid();
            return false;
        }
        else {
            $("#AC").append("").val("").html("");
            $("#PI").append("").val("").html("");
            //return true;
            $("#bpform").validate();
        }
    });