Category: Javascript Keywords: Javascript Events Ctrl+Enter
问题
用过 QQ 的人都熟悉用 Ctrl+Enter 来发送信息。网上大部分论坛程序都支持用 Ctrl+Enter 发表帖子,不过当我使用 Firefox 时,大部分论坛(我知道的都不成)这个功能都实效了。
跟 Joe 在 IRC 里说起 Gmail 的 hotkey, 发现在 Firefox 里也是可以使用的。不过找不到 Gmail 的源代码,还好可以用 Google
解决方案
<script type="text/javascript">
var x,q;
function ctlent(e){
if (document.all){
x = window.event.keyCode;
q = event.ctrlKey;
} else {
x = e.keyCode;
q = e.ctrlKey;
}
if (q && x==13) {
this.document.FORM.submit();
this.document.FORM.Submit.disabled = true;
}
if (!document.all){
window.captureEvents(Event.KEYPRESS);
window.onkeypress = ctlent;
}else{
document.onkeypress = ctlent;
}
}
function submitonce(form){
for (var i=0;i<form.elements.length;i++) {
var e=form.elements[i];
if(e.type.toLowerCase()=="submit") e.disabled=true;
}
}
</script>
<form name="FORM" onSubmit="submitonce(this)">
<textarea cols=75 name=inpost onKeyDown="ctlent(event)" rows=7></textarea>
<INPUT name="Submit" type=submit>
</form>