我在页面上使用简单的TinyMCE。使用jQuery验证文本区域时出现问题。
jQuery没有验证我的文本区域。
这是我的代码:
<------------------------------------------------------->
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 -->
你需要知道,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
坚持不懈地运用这个逻辑
$("#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"]',
以下代码适用于我,同样适合您。只需在验证调用之前放置以下代码,但触发提交后
var content = tinyMCE.activeEditor.getContent(); // get the content $('#textareaID').val(content);
它发生是因为tinymce让你的textarea隐藏起来。要解决这个问题,请在validate
调用前加上:
$(document).ready(function(){
$.validator.setDefaults({
ignore: []
});
// validate call
});