主题: [已完美解决]:强烈建议KindEditor编辑框中增加提交的快揵键Ctrl+Enter或Alt+s |
作者: jasonshaw, 发布日期: 2010-04-15 20:55:35, 浏览数: 7347 |
最好能给出一个 是否依靠快捷键提交表单的 开关,而且可以定制快捷键 是ctrl+enter 或者 其他什么的 前面有位高手实现了这个功能,但是不知道他的是什么版本, 我按照他的意思,修改了之后,按ctrl+enter或者alt+s是可以提交,但是一次就提交四次 修改之前, KE.event = { add : function(el, event, listener) { if (el.addEventListener){ el.addEventListener(event, listener, false); } else if (el.attachEvent){ el.attachEvent('on' + event, listener); } } KE.event = { add : function(el, event, listener) { if (el.addEventListener){ el.addEventListener(event, listener, false); el.addEventListener('keydown', function(e){return tosubmit(e)}, false); //新增監聽事件 BY CMS } else if (el.attachEvent){ el.attachEvent('on' + event, listener) el.attachEvent('onkeydown', tosubmit);//新增監聽事件 BY CMS ; } } 并在调用页面 增加了 function tosubmit(keyevent) { var comevent = keyevent||window.event; if(comevent.ctrlKey && comevent.keyCode == 13 || comevent.altKey && comevent.keyCode == 83 ) { document.getElementById("note_release").submit(); } } 这个函数,希望哪位高手帮忙指点一下,最好开发组能增加这个功能,bow! |
作者: Roddy, 发布日期: 2010-04-15 21:16:42 |
var id = 'textarea_id'; //要改成textarea的id KE.event.ctrl(document, 13, function() { KE.g[id].setData(id); //将编辑器数据赋值到textarea form.submit(); //这里需要修改,提交表单 }); |
回复 |
作者: jasonshaw, 发布日期: 2010-04-16 10:59:51 |
谢谢你的回复,不过不知道,你说的部分是修改哪里? |
回复 |
作者: Roddy, 发布日期: 2010-04-16 11:08:21 |
写在你调用编辑器的页面就可以,你写的代码是针对2.x的,代码完全不同。
|
回复 |
作者: jasonshaw, 发布日期: 2010-04-16 14:12:55 |
按照ls的指点,我添加了代码,但是似乎一点相应也没有的。
我的代码是这样的 <script type="text/javascript" charset="utf-8" src="./../kindeditor.js"></script> <script type="text/javascript"> KE.show({ id : 'content1', cssPath : './index.css' }); var id = 'content1'; //要改成textarea的id KE.event.ctrl(document, 13, function() { KE.g[id].setData(id); //将编辑器数据赋值到textarea //document.getElementById(id).submit(); //这里需要修改,提交表单 alert('ctrl+enter'); }); </script> 不知道我是哪里理解错误了? |
回复 |
作者: Roddy, 发布日期: 2010-04-16 16:19:36 |
下面加这个看看。
KE.event.ctrl(KE.g[id].iframeDoc, 13, function() { KE.g[id].setData(id); //将编辑器数据赋值到textarea //document.getElementById(id).submit(); //这里需要修改,提交表单 alert('ctrl+enter'); }); |
回复 |
作者: Roddy, 发布日期: 2010-04-16 16:28:06 |
不好意思,下面给你完整代码。
KE.show({ id : 'content1', cssPath : './index.css', afterCreate : function(id) { KE.event.ctrl(document, 13, function() { KE.util.setData(id); window.example.submit(); }); KE.event.ctrl(KE.g[id].iframeDoc, 13, function() { KE.util.setData(id); window.example.submit(); }); } }); 演示地址:http://www.kindsoft.net/ke/examples/demo-01.html |
回复 |
作者: jasonshaw, 发布日期: 2010-04-16 19:20:26 |
这下可以了,非常感谢 Roddy的回复,大赞啊!
今后,kindeditor就是我的必备编辑器了,太好了! 以前就想用的,但是出于一些与个人使用的不合适,也没想到来这里反馈,请教,就放弃了,这次终于如愿了! |
回复 |
作者: www99n9com, 发布日期: 2010-04-29 15:42:12 |
嗯.成功了.
不过又有新问题了,我是提交后,编辑器清空,用这个函数 function clearEditor(id) { KE.g[id].iframeDoc.open(); KE.g[id].iframeDoc.write(KE.util.getFullHtml(id)); KE.g[id].iframeDoc.close(); KE.g[id].newTextarea.value = ''; } 再次ctrl+Enter时,就不起作用了.怎么办? |
回复 |
作者: Roddy, 发布日期: 2010-04-29 17:34:54 |
清空内容用KE.util.setFullHtml(id, '');看看。 |
回复 |