主题: [已完美解决]:强烈建议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, '');看看。

回复
发表新帖 发表回复