今天测试了后台发布文章使用Ueditor插件
但是我后台使用的是LigerUI框架
这就涉及到LigerUI和Ueditor的整合
整合之前大家可以先看看这篇文章,以帮助您如何实现SpringMVC与Ueditor的整合
下面我们开始LigerUI的表单验证与Ueditor整合
1、根据文档,我们获得表单验证的源码文件
如我这里的地址是这个
file:///D:/Program%20Files/jQuery%20LigerUI%20V1.3.2/Source/demos/form/validator/form2.htm
2、将这个文件进行处理
如重新处理为jsp文件等,就是将后缀改为jsp,等
jsp里面的内容就是这个htm的内容
只是在jsp的文件开头加上如下代码
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>3、导入Ueditor的资源文件
在jsp文件中添加如下代码
<script type="text/javascript" charset="utf-8" src="../ueditor/ueditor.config.js"></script> <script type="text/javascript" charset="utf-8" src="../ueditor/ueditor.all.js"> </script> <script type="text/javascript" charset="utf-8" src="../ueditor/lang/zh-cn/zh-cn.js"></script>4、在jsp文件的末尾的body后面添加Ueditor的初始代码
<script type="text/javascript"> //实例化编辑器 //建议使用工厂方法getEditor创建和引用编辑器实例,如果在某个闭包下引用该编辑器,直接调用ue就能拿到相关的实例 var ue = new UE.ui.Editor({ initialFrameWidth:900, initialFrameHeight:200, toolbars: [[ 'fullscreen', 'source', '|', 'undo', 'redo', '|', 'bold', 'italic', 'underline', 'fontborder', 'strikethrough', 'superscript', 'subscript', 'removeformat', 'formatmatch', 'autotypeset', 'blockquote', 'pasteplain', '|', 'forecolor', 'backcolor', 'insertorderedlist', 'insertunorderedlist', 'selectall', 'cleardoc', '|', 'rowspacingtop', 'rowspacingbottom', 'lineheight', '|', 'customstyle', 'paragraph', 'fontfamily', 'fontsize', '|', 'directionalityltr', 'directionalityrtl', 'indent', '|', 'justifyleft', 'justifycenter', 'justifyright', 'justifyjustify', '|', 'touppercase', 'tolowercase', '|', 'link', 'unlink', 'anchor', '|', 'imagenone', 'imageleft', 'imageright', 'imagecenter', '|', 'simpleupload', 'insertimage', 'emotion', 'scrawl', 'insertvideo', 'music', 'attachment', 'map', 'gmap', 'insertframe', 'insertcode', 'webapp', 'pagebreak', 'template', 'background', '|', 'horizontal', 'date', 'time', 'spechars', 'snapscreen', 'wordimage', '|', 'inserttable', 'deletetable', 'insertparagraphbeforetable', 'insertrow', 'deleterow', 'insertcol', 'deletecol', 'mergecells', 'mergeright', 'mergedown', 'splittocells', 'splittorows', 'splittocols', 'charts', '|', 'print', 'preview', 'searchreplace', 'drafts', 'help' ]] }); ue.render("addtext"); function isFocus(e){ alert(ue.isFocus()); UE.dom.domUtils.preventDefault(e) } function setblur(e){ ue.blur(); UE.dom.domUtils.preventDefault(e) } function insertHtml() { var value = prompt('插入html代码', ''); ue.execCommand('insertHtml', value) } function createEditor() { enableBtn(); UE.getEditor('object'); } function getAllHtml() { alert(ue.getAllHtml()) } function getContent() { var arr = []; arr.push("使用editor.getContent()方法可以获得编辑器的内容"); arr.push("内容为:"); arr.push(ue.getContent()); alert(arr.join("\n")); } function getPlainTxt() { var arr = []; arr.push("使用editor.getPlainTxt()方法可以获得编辑器的带格式的纯文本内容"); arr.push("内容为:"); arr.push(ue.getPlainTxt()); alert(arr.join('\n')) } function setContent(isAppendTo) { var arr = []; arr.push("使用editor.setContent('欢迎使用ueditor')方法可以设置编辑器的内容"); ue.setContent('欢迎使用ueditor', isAppendTo); alert(arr.join("\n")); } function setDisabled() { ue.setDisabled('fullscreen'); disableBtn("enable"); } function setEnabled() { ue.setEnabled(); enableBtn(); } function getText() { //当你点击按钮时编辑区域已经失去了焦点,如果直接用getText将不会得到内容,所以要在选回来,然后取得内容 var range = ue.selection.getRange(); range.select(); var txt = ue.selection.getText(); alert(txt) } function getContentTxt() { var arr = []; arr.push("使用editor.getContentTxt()方法可以获得编辑器的纯文本内容"); arr.push("编辑器的纯文本内容为:"); arr.push(ue.getContentTxt()); alert(arr.join("\n")); } function hasContent() { var arr = []; arr.push("使用editor.hasContents()方法判断编辑器里是否有内容"); arr.push("判断结果为:"); arr.push(ue.hasContents()); alert(arr.join("\n")); } function setFocus() { ue.focus(); } function deleteEditor() { disableBtn(); ue.destroy(); } function disableBtn(str) { var div = document.getElementById('btns'); var btns = UE.dom.domUtils.getElementsByTagName(div, "button"); for (var i = 0, btn; btn = btns[i++];) { if (btn.id == str) { UE.dom.domUtils.removeAttributes(btn, ["disabled"]); } else { btn.setAttribute("disabled", "true"); } } } function enableBtn() { var div = document.getElementById('btns'); var btns = UE.dom.domUtils.getElementsByTagName(div, "button"); for (var i = 0, btn; btn = btns[i++];) { UE.dom.domUtils.removeAttributes(btn, ["disabled"]); } } function getLocalData () { alert(ue.execCommand( "getlocaldata" )); } function clearLocalData () { ue.execCommand( "clearlocaldata" ); alert("已清空草稿箱") } </script>
以上代码中
initialFrameWidth:900,
initialFrameHeight:200,
表示重新设置了编辑器的宽和高
toolbars:表示重写定义了编辑器的功能
ue.render("addtext"); addtext表示 textarea标签的id
而后面就是编辑器的方法
如果您需要,可以在适当的位置添加如下代码
<button onclick="getAllHtml()">获得整个html的内容</button>这代码是个按钮,点击这个按钮显示这个编辑器的内容
5、需要注意的是,LigerUI的表单验证里面的textarea标签是没有name属性的,请一定添加,不然后台获取不到数据
6、关于LigerUI的表单验证
他有两个按钮
一个按钮是提交,表示如果这个表单没有问题就可以执行submitHandler方法
一个按钮是测试,它表示测试当前表单是否合法
7、关于LigerUI的表单验证的提交
LigerUI的表单验证提交是执行了以下代码,代码大家可以在
file:///D:/Program%20Files/jQuery%20LigerUI%20V1.3.2/Source/demos/form/validator/form2.htm
查看到
submitHandler: function () { $("form .l-text,.l-textarea").ligerHideTip(); alert("Submitted!") }以上代码是源码中的例子,很多不知道提交,其实我一开始也不知道。
后来我就直接写了一个ajax来提交
如下代码
submitHandler: function () { $("form .l-text,.l-textarea").ligerHideTip(); var serStr = $("#form1").serialize();//序列化表单 alert(serialStr); var myurl = 'update/addar'; //请求的url $.ajax({ type:'post', url:myurl, data:serStr, success:function(redata){ if (redata ==1) { alert( '操作成功!'); }else{ alert('失败提示', '操作失败!'); return; } } }); }点击提交后,就会执行这个action,本例已经测试正常了
爆款云服务器s6 2核4G 低至0.46/天,具体规则查看活动详情