用电脑的朋友在提交评论的时候可能更喜欢用快捷键,比如Enter,进行提交表单操作,不用点击提交按钮。但是由于评论框一般是多行文本输入框<textarea>,默认Enter键是用于换行,所以,博主笑忘书折腾了一下,利用网上的办法实现了这个Ctrl+Enter键快速提交评论表单的功能。

以下分别是javascript和JQuery代码:

一,实现原理是监听textarea的onkeydown事件,当ctrl键被按下,并且,keycode为13(回车)时,调用发送表单的函数。

Emlog可以在module.php里找到“发表评论表单”函数,再找到<textarea>,一般如下:

<textarea name="comment" id="comment" rows="10" tabindex="4"></textarea>

我们需要在上面的textarea标签里加入一句onKeyDown="submitForm(this.form.name);",如下:

<textarea name="comment" id="comment" rows="10" tabindex="4" onKeyDown="submitForm(this.form.name);"></textarea>

接着在后面加入javascript函数(已用html调用):

<script type="text/javascript">
function submitForm(formName){ if(window.event.ctrlKey&&window.event.keyCode==13){ document.getElementById(formName).submit(); }}</script>

要注意的是,Form表单必须指定Name 或 ID,否则Js将获取不到对象,导致代码运行出错。详情可点此查看

保存后,就可以在写完评论后,直接在键盘上完成提交。经测试,开启验证码后也可以使用。

二,这种需要载入jQuery库,如:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>

当然Emlog有自带的JQuery库,添加如下代码到echo_log.php文件夹即可加载:

<?php if(function_exists('emLoadJQuery')) {    
emLoadJQuery();
}?>

然后在主题的js文件中或者header.php中用HTML调用以下js:

$(function() {	  
$(document).keypress(function(e){      
if(e.ctrlKey && e.which == 13 || e.which == 10) {      
$("#commentform").submit();      } 
else if (e.shiftKey && e.which==13 || e.which == 10) {      
$("#commentform").submit();//#commentform是发表评论表单form的ID       }      
})	  
});

该代码来自如何实现“Ctrl+Enter”submit提交

本博客使用的是第一种,不知道兼容性如何,各位测试下吧。

全文完