TinyMCE jQuery验证问题

时间:2011-06-27 06:51:49

标签: php jquery tinymce

我在页面上使用简单的TinyMCE。使用jQuery验证文本区域时出现问题。

jQuery没有验证我的文本区域。

  1. 仍然保存空文本
  2. 提及(“。不要将文本区域留空”)在TextArea中写一些东西时出现错误。
  3. 这是我的代码:

    <------------------------------------------------------->
    jQuery code:
    <------------------------------------------------------->
    <script type="text/javascript">
    $(document).ready(function() {
        $("#frmeditpages").validate({
            rules: {
                txtdescription:
                {
                    required:true
                }
    
                    },
            messages: {
                txtdescription: ".       Don't leave the Text area Empty"
    
                      }
        });
    });
    </script>
    <----------------------------------------------------------->
    <!-- TinyMCE -->
    <----------------------------------------------------------->
    
    <script type="text/javascript" src="../js/jquery-lib.js"></script>  
    <script type="text/javascript" src="../js/jquery.validate.js"></script>
    <script type="text/javascript" src="../tinymce/jscripts/tiny_mce/tiny_mce.js"></script>
    
    <script type="text/javascript">
        tinyMCE.init({
            // General options
            mode : "textareas",
            theme : "simple",
            plugins : "pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template,wordcount,advlist,autosave",
    
            // Theme options
            theme_advanced_buttons1 : "save,newdocument,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,styleselect,formatselect,fontselect,fontsizeselect",
            theme_advanced_buttons2 : "cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code,|,insertdate,inserttime,preview,|,forecolor,backcolor",
            theme_advanced_buttons3 : "tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,charmap,emotions,iespell,media,advhr,|,print,|,ltr,rtl,|,fullscreen",
            theme_advanced_buttons4 : "insertlayer,moveforward,movebackward,absolute,|,styleprops,|,cite,abbr,acronym,del,ins,attribs,|,visualchars,nonbreaking,template,pagebreak,restoredraft",
            theme_advanced_toolbar_location : "top",
            theme_advanced_toolbar_align : "left",
            theme_advanced_statusbar_location : "bottom",
            theme_advanced_resizing : true,
    
            // Example content CSS (should be your site CSS)
            content_css : "css/content.css",
    
            // Drop lists for link/image/media/template dialogs
            template_external_list_url : "lists/template_list.js",
            external_link_list_url : "lists/link_list.js",
            external_image_list_url : "lists/image_list.js",
            media_external_list_url : "lists/media_list.js",
    
            // Style formats
            style_formats : [
                {title : 'Bold text', inline : 'b'},
                {title : 'Red text', inline : 'span', styles : {color : '#ff0000'}},
                {title : 'Red header', block : 'h1', styles : {color : '#ff0000'}},
                {title : 'Example 1', inline : 'span', classes : 'example1'},
                {title : 'Example 2', inline : 'span', classes : 'example2'},
                {title : 'Table styles'},
                {title : 'Table row 1', selector : 'tr', classes : 'tablerow1'}
            ],
    
            // Replace values for the template plugin
            template_replace_values : {
                username : "Some User",
                staffid : "991234"
            }
        });
    </script>
    <!-- /TinyMCE -->
    

4 个答案:

答案 0 :(得分:1)

你需要知道,tinymce不等于textarea! Tinymce将在初始化时隐藏textarea并创建一个用户可以编辑内容的iframe。因此,需要调用tinymce save方法将iframe内容写回textarea。

所以你需要以下代码

var editor = tinymce.get( editor_id);
editor.save();  // writes content back to the textarea
// you may now use jQuery or editor.getContent(); to acces the content

答案 1 :(得分:0)

明确地运用这个逻辑

$("#buttontosave").click(function() {
    tinyMCE.triggerSave();
    var status;
    status = $("#menu_create").valid(); //Validate again
   /* if(status==true)
    { 
       //alert('true')
    }
    else 
    { 
         //  alert('false')

    }*/

});

buttontosave您的提交按钮ID 注意:plz也验证隐藏值,不要这样做

ignore: 'input[type="hidden"]',

plz发表评论

   //ignore: 'input[type="hidden"]',

答案 2 :(得分:0)

以下代码对我有用,对您也一样。只需在验证调用之前放置以下代码,但触发提交后     

     var content = tinyMCE.activeEditor.getContent(); // get the content
     $('#textareaID').val(content);
     

答案 3 :(得分:0)

发生这种情况是因为tinymce隐藏了您的文本区域。要解决此问题,请将其放在validate调用之前:

$(document).ready(function(){    
    $.validator.setDefaults({
        ignore: []
    });

    // validate call
});