WordPress中用Ctrl+Enter提交留言

由于某些软件和论坛的缘故,很多时候冰古blog上写完留言回复后,都习惯性地按下Ctrl+Enter进行提交留言,但基本上是不成功的,很多blog程序都没有加入这样的快捷键

Discuz等论坛都可以使用快捷键提交发贴和发贴,但因为觉得它们的代码太麻烦,所以一直没有去查找该快捷键的方法。直到有次在百度知道回复时,按下Ctrl+Enter提交竟然成功了,才打开它的源代码查看了下。一看才知道,实现的方法很简单,只需几行javascript就能搞定了。那么我们也在WordPress加上这个快捷键吧:

一、打开模板中的comments.php文件,查找到下面的内容:

<form action="<?php echo get_option('siteurl'); ?>/wp-comments-post.php" method="post" id="commentform" name="commentform">
<?php if ( $user_ID ) : ?>

如果你的form标签中没有name=”commentform”属性,那么请加上。
二、再往下拉一点,你可以看到类似的两行:

<p><textarea name="comment" id="comment" cols="55" rows="10" tabindex="4"></textarea></p>
<p><input type="submit" id="submit" tabindex="5" value="提交留言" /></p>

如果textarea标签上没有id属性,请按照上面的内容加上。如果在第二行中发现name=”submit”,将之删除。
三、最后,在</form>的下面,添加下面的一段javascript代码后保存就行了。

<script type="text/javascript">
var commenttextarea = document.getElementById('comment');
commenttextarea.onKeyDown = quickSubmit(event);
function quickSubmit(event){
  if (event.ctrlKey && event.keyCode == 13){
    document.submitform.submit();
  }
}
</script>

貌似上面这句我搞错了document.submitform.submit();,顺便把代码兼容性弄好点,用上下面的代码,应该没问题了。

<script type="text/javascript">
var commenttextarea = document.getElementById('comment');
commenttextarea.onkeydown = function quickSubmit(e) {
  if (!e) var e = window.event;
  //alert(e.keyCode);
  if (e.ctrlKey && e.keyCode == 13){
    //alert('good');
    document.getElementById('commentform').submit();
  }
};
</script>

试试吧。

BTW:google换了favicon?google/谷歌 favicon

29留言于“WordPress中用Ctrl+Enter提交留言”

  1. 冰古说:

    恭喜恭喜 :mrgreen:

  2. asiapan说:

    成功了,哈哈 :smile:

  3. 冰古说:

    关键是那个submit那个按键不能有name这个属性,我看了你的源代码,发现是有这个属性的。

    如果还不行,你可以看一下我的源代码。

    如果要发代码,用code标签就可以了

  4. asiapan说:

    上面一条代码消失了一大部分,抱歉不知道怎么在留言里贴代码

  5. asiapan说:

    我的第二部分代码是这样的:

    <input type=”hidden” name=”comment_post_ID” value=”" />

    会不会有问题?

  6. asiapan说:

    我在自己的blog上修改测试没成功,在你这里试验一下

  7. 一日就是一天说:

    成功了,不错!@谢谢

  8. 一日就是一天说:

    试试! :lol:

  9. 冰古说:

    @phy 这个按照说明来做吧,我看不到你的网页代码那些,我也不知道原因啊。

  10. phy说:

    天啊!Failed…

    这是为什么呢?

    这里却可以…Ctrl+Enter… :sad:

  11. 冰古说:

    @花果山寨 你的html代码是怎样的呢?我无法得知你的html代码是怎样的,也就无从知道是什么导致不能使用。

  12. 花果山寨说:

    启用了回复插件会不会影响这个功能的实现,我在本地调试没办法实现ctrl+enter 提交

  13. 花果山寨说:

    咦!怎么不行呢?我可是按你的说明一步一步弄的哦!

  14. 花果山寨说:

    太好了,我试试!

  15. 冰古说:

    标准不是唯一,适合才是真的。

    大家的习惯都是用ctrl+enter,而且这也更顺手。

  16. 梵尚说:

    其实标准的应该是ALT+S
    感觉使用accesskey属性应该就可以了

  17. 冰古说:

    :mrgreen: discuz也是可以用ctrl+enter提交的。

  18. Charles说:

    呵呵,挺不错的,这个有点像QQ了。

  19. Black-Xstar说:

    我也试一下

  20. WordPress Tips: WordPress中用Ctrl+Enter提交留言 at WordPress Today说:

    [...]   WordPress中用Ctrl+Enter提交留言。让WordPress的留言框支持使用”Ctrl+Enter”快捷提交留言。 由于某些软件和论坛的缘故,很多时候冰古在blog上写完留言回复后,都习惯性地按下Ctrl+Enter进行提交留言,但基本上是不成功的,很多blog程序都没有加入这样的快捷键。 Discuz等论坛都可以使用快捷键提交发贴和发贴,但因为觉得它们的代码太麻烦,所以一直没有去查找该快捷键的方法。直到有次在百度知道回复时,按下 Ctrl+Enter提交竟然成功了,才打开它的源代码查看了下。一看才知道,实现的方法很简单,只需几行javascript就能搞定了。那么我们也在WordPress加上这个快捷键吧: [...]

  21. Leo说:

    :smile:
    我也来测试一下

    FF3 RC2

  22. 冰古说:

    用opera测试一下

  23. 冰古说:

    再次测试一下。

  24. 我乐视频分享说:

    :shock: 测试没成功。。。

  25. 冰古说:

    奇怪了,怎么又不行了。
    过两天再搞搞。

  26. scavin说:

    没有成功

  27. scavin说:

    试一下,这是个好功能

  28. 冰古说:

    @limkianhui 哈,买域名了。

  29. limkianhui说:

    :smile: 哇!這個暴強。

留言

Markup Controls
Emoticons Smile Grin Sad Surprised Shocked Confused Cool Mad Razz Neutral Wink Lol Red Face Cry Evil Twisted Roll Exclaim Question Idea Arrow Mr Green

提示/Tips可使用Ctrl+Enter快速提交留言
冰古blog启用了SCP防止留言垃圾,请确保留言包含中文字符。Your comment must include some Chinese in order to pass the comment checking.