Ctrl+Enter提交表单支持IE,Firefox,Opera
不同浏览器对JS标准的支持实现让我恼火,前些日子正为一个按下Ctrl键和Enter健提交表单而犯愁,还好解决了。记录于此,希望碰到相同问题的朋友能看到此篇文章!
注:此代码经本人测试支持以下浏览器:IE>6.0,Firefox>2.0,Opera>9.0
下面是我测试时用到的代码:。
注:最好还是下载 >>>点击下载源码(ctrl-enter.rar)<<<
XML/HTML代码
- <html>
- <head>
- <title>phplamp站-www.phplamp.org</title>
- <script type="text/javascript">
- function isKeyTrigger(e,keyCode){
- var argv = isKeyTrigger.arguments;
- var argc = isKeyTrigger.arguments.length;
- var bCtrl = false;
- if(argc > 2){
- bCtrl = argv[2];
- }
- var bAlt = false;
- if(argc > 3){
- bAlt = argv[3];
- }
- var nav4 = window.Event ? true : false;
- if(typeof e == 'undefined') {
- e = event;
- }
- if(bCtrl &&
- !((typeof e.ctrlKey != 'undefined') ?
- e.ctrlKey :
- e.modifiers & Event.CONTROL_MASK > 0)) {
- return false;
- }
- if( bAlt &&
- !((typeof e.altKey != 'undefined') ?
- e.altKey : e.modifiers & Event.ALT_MASK > 0)){
- return false;
- }
- var whichCode = 0;
- if (nav4) whichCode = e.which;
- else if (e.type == "keypress" || e.type == "keydown") whichCode = e.keyCode;
- else whichCode = e.button;
- return (whichCode == keyCode);
- }
- function ctrlEnter(e){
- var ie = navigator.appName == "Microsoft Internet Explorer" ? true : false;
- if(ie){
- if(event.ctrlKey && event.keyCode == 13) {
- submit();
- }
- else {
- if(isKeyTrigger(e,13,true)) submit();
- }
- }
- }
- function submit() {
- document.getElementById('myForm').submit();
- }
- </script>
- </head>
- <body>
- <span>按下ctrl+enter后提交表单</span>
- <form id="myForm" method="post" action="http://www.phplamp.org">
- <textarea onkeydown="ctrlEnter(event)"></textarea>
- </form>
- </body>
- </html>
- 上一篇:不同浏览器编程之Css Hack小结 (摘)
- 下一篇:如何让网页中的视频置顶于窗口
相关文章导读
文章评论
评论表单
2 回复 for "Ctrl+Enter提交表单支持IE,Firefox,Opera"
xiaoping - 2008-07-03
不错,简洁又不单调。
admin - 2008-07-04
谢谢夸奖~!现在这个模板还属于测试阶段,因为第一次做wp模板,不敢确定现在已经完成,只能说现在能浏览了。欢迎您时常来看看,我会经常更新的!
