Old

WP3.0新增的comment_form()函數实现Ctrl+Enter提交评论

》》最近在折腾 zBench 主题的更新,因为WordPress官方要求使用 WordPress 3.0 新增的函数 comment_form() 来生成评论表单,这样虽然很方便,减少了主题开发者的代码量,但问题接着来了,因为这样的话原来主题自带的 Ctrl + Enter 提交评论功能就没法用了。

有问题是放狗搜,但 WordPress 函数问题最好直接去 codex.wordpress.org

comment_form() 函数说明地址(英文):传送门

》》稍微研究参数后解决,不过遇到一个问题,先看看原来的 Ctrl + Enter 提交评论代码(注意红色部分):

<textarea name="comment" id="comment" cols="100%" rows="6" tabindex="4" onkeydown="if(event.ctrlKey&amp;&amp;event.keyCode==13){document.getElementById('submit').click();return false};"></textarea>

其中的&amp;&amp;是&&运算符,在设置 comment_form() 函数的参数时这个运算符出错,怎么折腾也不行,后来脑筋一转,if语句有2个条件,拆分为2个if不就行了,哈,问题解决。

下面是解决代码:

<?php comment_form('comment_field=<p class="comment-form-comment"><textarea aria-required="true" rows="8" cols="45" name="comment" id="comment" onkeydown="if(event.ctrlKey){if(event.keyCode==13){document.getElementById(\'submit\').click();return false}};"></textarea></p>'); ?>

这个问题解决鸟,还遇到一些问题,解决后再下回分解!

zww
or
oooo

声明: 除非注明,ZWWoOoOo文章均为原创,转载请以链接形式标明本文地址
本文地址: http://zww.me/archives/25312

93 comments

  1. Jayuh Jayuh

    期待下回分解!

    沙发
  2. 小闇 小闇

    手機黨遲來了

    板凳
  3. 球犯 球犯

    手机党前来支持!放狗搜 这是你的专用名词不。。好冷啊

    地板
  4. ......
  5. 百度黑板报 百度黑板报

    突然发现域名好短啊 hoho

    21楼
  6. Kars Kars

    大叔 用 外部JS 加载吧、、

    document.getElementById("comment").onkeydown=function(b){var a=null;a=window.event?window.event:b;a!=null&&a.ctrlKey&&a.keyCode==13&&document.getElementById("submit").click()};

    22楼
    • zwwooooo zwwooooo

      @Kars
      以后整合进表情支持的那个php文件里面吧,那里面有js代码。不过我这也算是提供另一种方法吧

    • Kars Kars

      @zwwooooo
      我对 那些 嵌在 HTML 中的 JS 不是很了解、、 :shock:

  7. 第六空间 第六空间

    不都升级到3.01了么。不过我还是在用2.92,我这个淫就是念旧 :mrgreen:

    23楼
  8. Alan Alan

    外部调用
    if (!document.getElementById) return false;
    if (!document.getElementById("comment") || !document.getElementById("submit")) return false;
    document.getElementById("comment").onkeydown = function (moz_ev) {
    var ev = null;
    if (window.event){
    ev = window.event;
    }
    else{
    ev = moz_ev;
    }
    if (ev != null && ev.ctrlKey && ev.keyCode == 13) {
    document.getElementById("submit").click();
    }
    }

    24楼
    • mice mice

      @Alan
      :shock: 如果写这么长 还不如直接另外写js里好了..

    • zwwooooo zwwooooo

      @Alan
      呵呵,尽量用简单方法吧

    • Alan Alan

      @mice
      这个是直接写js里啊,结构和行为分离嘛,你要直接写submit按钮后面当然不用这么多,少了前面几行判断。

    • Alan Alan

      @zwwooooo
      其实有个jQuery的,可以提交,但是直接无视ajax-comment,我没搞懂。
      $(function() {
      $('#comment').keydown(event) {
      if(event.ctrlKey && event.keycode == 13) {
      $('#submit').click();
      }
      }
      }

    • Alan Alan

      @Alan
      keycode打错了,应该是keyCode

    • zwwooooo zwwooooo

      @Alan
      其实原理差不多,呵呵

    • 砼砼 砼砼

      @Alan
      把click改成submit

    • Alan Alan

      @砼砼
      Thanks!

  9. 型男索女 型男索女

    @ZWWoOoOo 我想问一下我现在的博客主题,我想把前三篇文章的摘要内容都显示出来要怎么处理?(现在只显示第一篇的),谢谢!

    25楼
    • zwwooooo zwwooooo

      @型男索女
      要改jq代码,打开 zww-line.js 找到 12 行的
      $(".expansion-1:first").click();
      改为
      $(".expansion-1:lt(3)").click();

  10. 大连SEO 大连SEO

    textarea我这里看起来怎么那么小,高度只有一行的样子,是我的浏览器的原因吗?还是就是设置的这样。

    26楼
  11. C瓜哥 C瓜哥

    受教,有空拿回去用用

    27楼
  12. 星野苍真 星野苍真

    之前纠结这个问题,之后用了一段JS……回头试试这个方法

    28楼
  13. oalleno oalleno

    还没能力用上ctrl+enter。我那主题怎么用上ajax评论效果还是没则,有n多这样的插件,样式不太喜欢,就一直搁浅了。

    29楼
  14. Bee君 Bee君

    现在这个主题越来越精致啦~

    30楼
  15. yywr yywr

    原来如此~~ :grin:
    不懂PHP搞得头大啊

    31楼
  16. JStyle JStyle

    <?php comment_form('comment_field=这里有个小错误,field=>'<p
    哈哈,还是相当谢谢你这文章的指点,终于搞掂表情问题。发现,WP好多牛人。

    32楼
  17. JStyle JStyle

    文章里是:_field='field=>'<p..

    另外,想请教下,你的评议用的是插件吗?哪个插件?头像是怎么调用的?本地的还是G?

    33楼
  18. 无为 无为

    请问下

    if ( $comment_author != "" ) : printf('', $comment_author);

    怎么加入到函数里去。

    34楼
    • zwwooooo zwwooooo

      @无为
      这么简单的判断加到函数干嘛?这不是蛋疼么?

    • 无为 无为

      @zwwooooo
      主要是想将判断过后的代码加入到表单,不过解决了。将判断放在外面以变量的形式放到函数内。是很简单,只是我对PHP一窍不通(通了九窍?汗!)的人来说就是天书了。

    • zwwooooo zwwooooo

      @无为
      呵呵,慢慢折腾

  19. 咚门 咚门

    刚想给主题加个快捷回复功能。百度又到你这了。

    35楼
  20. lss53 lss53

    我受此文的启发,终于为评论框添加简单文字编辑器,效果与您的相仿。再者感谢您提醒我不做伸手党,再次感谢!

    36楼
  21. Kick Scooter Kick Scooter

    正在找這個函數 研究學習中
    謝謝分享

    37楼

Leave a Reply