》》最近在折腾 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&&event.keyCode==13){document.getElementById('submit').click();return false};"></textarea>
其中的&&是&&运算符,在设置 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
赏
oooo
or
- 本文标题:WP3.0新增的comment_form()函數实现Ctrl+Enter提交评论
- 本文链接:https://zww.me/archives/25312
- 发布时间:2010年09月28日 10:18
- 版权声明:除非注明,文章均为 zwwooooo 原创,转载请以链接形式标明本文地址!
突然发现域名好短啊 hoho
@百度黑板报
呵呵,不然怎么去忍受.me的续费呢?
大叔 用 外部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()};
@Kars
以后整合进表情支持的那个php文件里面吧,那里面有js代码。不过我这也算是提供另一种方法吧
@zwwooooo
我对 那些 嵌在 HTML 中的 JS 不是很了解、、
不都升级到3.01了么。不过我还是在用2.92,我这个淫就是念旧
@第六空间
3.0新加的,3.0.x都是些小升级
外部调用
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();
}
}
@Alan
如果写这么长 还不如直接另外写js里好了..
@Alan
呵呵,尽量用简单方法吧
@mice
这个是直接写js里啊,结构和行为分离嘛,你要直接写submit按钮后面当然不用这么多,少了前面几行判断。
@zwwooooo
其实有个jQuery的,可以提交,但是直接无视ajax-comment,我没搞懂。
$(function() {
$('#comment').keydown(event) {
if(event.ctrlKey && event.keycode == 13) {
$('#submit').click();
}
}
}
@Alan
keycode打错了,应该是keyCode
@Alan
其实原理差不多,呵呵
@Alan
把click改成submit
@砼砼
Thanks!
@ZWWoOoOo 我想问一下我现在的博客主题,我想把前三篇文章的摘要内容都显示出来要怎么处理?(现在只显示第一篇的),谢谢!
@型男索女
要改jq代码,打开 zww-line.js 找到 12 行的
$(".expansion-1:first").click();
改为
$(".expansion-1:lt(3)").click();
textarea我这里看起来怎么那么小,高度只有一行的样子,是我的浏览器的原因吗?还是就是设置的这样。
@大连SEO
就一行代码
受教,有空拿回去用用
之前纠结这个问题,之后用了一段JS……回头试试这个方法
@星野苍真
试试吧,好用就行了
还没能力用上ctrl+enter。我那主题怎么用上ajax评论效果还是没则,有n多这样的插件,样式不太喜欢,就一直搁浅了。
@oalleno
用willin的ajax评论提交代码吧
现在这个主题越来越精致啦~
@Bee君
哈,慢慢玩
原来如此~~
不懂PHP搞得头大啊
@yywr
主要是要了解这个函数
<?php comment_form('comment_field=这里有个小错误,field=>'<p
哈哈,还是相当谢谢你这文章的指点,终于搞掂表情问题。发现,WP好多牛人。
@JStyle
哪里有错?
文章里是:_field='field=>'<p..
另外,想请教下,你的评议用的是插件吗?哪个插件?头像是怎么调用的?本地的还是G?
@JStyle
头像缓存了,全部代码。
请问下
怎么加入到函数里去。
@无为
这么简单的判断加到函数干嘛?这不是蛋疼么?
@zwwooooo
主要是想将判断过后的代码加入到表单,不过解决了。将判断放在外面以变量的形式放到函数内。是很简单,只是我对PHP一窍不通(通了九窍?汗!)的人来说就是天书了。
@无为
呵呵,慢慢折腾
刚想给主题加个快捷回复功能。百度又到你这了。
@咚门
这……那谢谢百度……囧
我受此文的启发,终于为评论框添加简单文字编辑器,效果与您的相仿。再者感谢您提醒我不做伸手党,再次感谢!
@lss53
自己动手丰衣足食很爽的。
正在找這個函數 研究學習中
謝謝分享
代码可以使用 非常感谢