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文章均为原创,转载请以链接形式标明本文地址
本文地址: https://zww.me/archives/25312

93 comments

  1. Jayuh Jayuh Firefox 3 Firefox 3 Windows XP Windows XP

    期待下回分解!

    沙发
  2. 小闇 小闇 Mozilla Compatible Mozilla Compatible iPhone iOS 4.1 iPhone iOS 4.1

    手機黨遲來了

    板凳
  3. 球犯 球犯 Opera Mini 4 Opera Mini 4 J2ME/MIDP Device J2ME/MIDP Device

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

    地板
  4. ......
  5. 百度黑板报 百度黑板报 Google Chrome 6 Google Chrome 6 Windows XP Windows XP

    突然发现域名好短啊 hoho

    21楼
  6. Kars Kars Firefox 3 Firefox 3 Windows XP Windows XP

    大叔 用 外部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 Google Chrome 7 Google Chrome 7 Windows 7 Windows 7

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

    • Kars Kars Firefox 3 Firefox 3 Windows XP Windows XP

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

  7. 第六空间 第六空间 Google Chrome 6 Google Chrome 6 Windows XP Windows XP

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

    23楼
  8. Alan Alan Firefox 3 Firefox 3 Windows XP Windows XP

    外部调用
    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 GreenBrowser GreenBrowser Windows XP Windows XP

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

    • zwwooooo zwwooooo Google Chrome 7 Google Chrome 7 Windows 7 Windows 7

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

    • Alan Alan Firefox 3 Firefox 3 Windows XP Windows XP

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

    • Alan Alan Firefox 3 Firefox 3 Windows XP Windows XP

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

    • Alan Alan Firefox 3 Firefox 3 Windows XP Windows XP

      @Alan
      keycode打错了,应该是keyCode

    • zwwooooo zwwooooo Google Chrome 7 Google Chrome 7 Windows 7 Windows 7

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

    • 砼砼 砼砼 Firefox 3 Firefox 3 Windows 7 Windows 7

      @Alan
      把click改成submit

    • Alan Alan Firefox 3 Firefox 3 Windows XP Windows XP

      @砼砼
      Thanks!

  9. 型男索女 型男索女 Internet Explorer 8 Internet Explorer 8 Windows XP Windows XP

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

    25楼
    • zwwooooo zwwooooo Google Chrome 7 Google Chrome 7 Windows 7 Windows 7

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

  10. 大连SEO 大连SEO Internet Explorer 7 Internet Explorer 7 Windows XP Windows XP

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

    26楼
  11. C瓜哥 C瓜哥 Firefox 3 Firefox 3 Windows XP Windows XP

    受教,有空拿回去用用

    27楼
  12. 星野苍真 星野苍真 Firefox 3 Firefox 3 Windows 7 Windows 7

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

    28楼
  13. oalleno oalleno Firefox 3 Firefox 3 Windows 7 Windows 7

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

    29楼
  14. Bee君 Bee君 Google Chrome 7 Google Chrome 7 Windows 7 Windows 7

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

    30楼
  15. yywr yywr Opera 11 Opera 11 Windows 7 Windows 7

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

    31楼
  16. JStyle JStyle Google Chrome 11 Google Chrome 11 Windows 7 Windows 7

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

    32楼
  17. JStyle JStyle Google Chrome 11 Google Chrome 11 Windows 7 Windows 7

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

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

    33楼
  18. 无为 无为 ChromePlus 1 ChromePlus 1 Windows XP Windows XP

    请问下

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

    怎么加入到函数里去。

    34楼
    • zwwooooo zwwooooo Firefox 4 Firefox 4 Windows 7 Windows 7

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

    • 无为 无为 ChromePlus 1 ChromePlus 1 Windows XP Windows XP

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

    • zwwooooo zwwooooo Firefox 4 Firefox 4 Windows 7 Windows 7

      @无为
      呵呵,慢慢折腾

  19. 咚门 咚门 Google Chrome 15 Google Chrome 15 Windows 7 Windows 7

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

    35楼
  20. lss53 lss53 Internet Explorer 7 Internet Explorer 7 Windows 7 Windows 7

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

    36楼
  21. Kick Scooter Kick Scooter Google Chrome 41 Google Chrome 41 Windows 7 Windows 7

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

    37楼

Leave a Reply