使用JQuery实现Ctrl+Enter提交表单的方法


Posted in Javascript onOctober 22, 2015

有时候我们为了省事就操作键盘组合键去代替使用鼠标,我们今天就使用JQuery实现Ctrl+Enter提交表单。

我们发帖时,在内容输入框中输入完内容后,可以点击“提交”按钮来发表内容。可是,如果你够“懒”,你可以不用动鼠标,只需按住键盘上的Ctrl+Enter键,即可提交表单,完成内容发布。
当然,由于输入框是一个多行文本输入框textarea,我们知道,在textarea中按Enter(回车)键可以换行,并不能直接提交表单(submit),而默认情况下,浏览器忽略了Ctrl键。那么我们可以通过Javascript脚本来控制使用Ctrl+Enter键来组合完成表单提交,本文结合示例讲解基于jQuery的Ctrl+Enter提交表单效果。
HTML
我们在页面body中,放置一个textarea输入框,一个提交按钮button,以及展示提交后的结果div#result。

<div id="result"></div> 
<textarea name="msg" id="msg" placeholder="输入内容" autofocus></textarea> 
<button type="submit">提 交</button><span>可按“Ctrl+Enter”键提交</span>

CSS
简单的写几行css,修饰textarea输入框、button提交按钮以及提交后显示内容的.post样式。

textarea {display:block; width:450px;height:100px;border: 1px solid #ccc;} 
button {border: 1px solid #ccc; background: #ececec;-webkit-border-radius: 3px; 
-moz-border-radius: 3px;margin-top: 10px;padding: 5px 20px; cursor:pointer} 
.post{width: 230px;border: 1px solid #ccc;background: #ececec; padding: 10px; margin: 10px 0;}

jQuery
首先必须预先载入jQuery库。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>

我们来编写一个简单的插件ctrlEnter(),其中带两个参数,第一个参数btns表示插件作用的元素,第二个参数fn表示调用的函数。我们在插件中加入函数performAction()来确保插件内部调用。接着插件开始侦听键盘事件,当按下keydown键盘中的某个键时,判断如果按下的是Enter(回车)键和Ctrl键,则调用performAction(),并阻止默认的回车换行行为。然后我们还应该在button上绑定click事件调用performAction(),这样就可以通过单击按钮也可以提交内容了。

$.fn.ctrlEnter = function (btns, fn) { 
   var thiz = $(this); 
   btns = $(btns); 
     
   function performAction (e) { 
     fn.call(thiz, e); 
   }; 
   thiz.bind("keydown", function (e) { 
    if (e.keyCode === 13 && e.ctrlKey) { 
      performAction(e); 
      e.preventDefault(); //阻止默认回车换行 
    } 
   }); 
   btns.bind("click", performAction); 
}

最后,调用ctrlEnter,将textarea中的内容提交到#result中,并且将回车替换为br,并且清空textarea。当然实际应用中,应该将内容post给后台处理程序,让后台程序php等处理内容及数据交互。

$("#msg").ctrlEnter("button", function () { 
    $("<p class='post'></p>").append(this.val().replace(/\n/g, "<br/>")).fadeIn('slow') 
.appendTo("#result"); 
    this.val(""); 
});

以上就是如何使用JQuery实现Ctrl+Enter提交表单的方法,大家有没有一个清晰的思路了,希望这篇文章对大家的学习有所帮助。

Javascript 相关文章推荐
jQuery .attr()和.removeAttr()方法操作元素属性示例
Jul 16 Javascript
js设置function参数默认值(适合没有传参情况)
Feb 24 Javascript
AngularJS Module方法详解
Dec 08 Javascript
APP中javascript+css3实现下拉刷新效果
Jan 27 Javascript
webpack+vue.js实现组件化详解
Oct 12 Javascript
浅谈JavaScript的闭包函数
Dec 08 Javascript
jQuery插件HighCharts绘制的2D堆柱状图效果示例【附demo源码下载】
Mar 14 Javascript
vue 全选与反选的实现方法(无Bug 新手看过来)
Feb 09 Javascript
JS构造一个html文本内容成文件流形式发送到后台
Jul 31 Javascript
electron踩坑之dialog中的callback解决
Oct 06 Javascript
vue3.0+vue-router+element-plus初实践
Dec 02 Vue.js
vue实现省市区联动 element-china-area-data插件
Apr 22 Vue.js
实例详解angularjs和ajax的结合使用
Oct 22 #Javascript
jQuery多级手风琴菜单实例讲解
Oct 22 #Javascript
使用jquery插件qrcode生成二维码
Oct 22 #Javascript
JavaScrip调试技巧之断点调试
Oct 22 #Javascript
浅析JavaScript 调试方法和技巧
Oct 22 #Javascript
JS+CSS实现的竖向简洁折叠菜单效果代码
Oct 22 #Javascript
浅谈node.js中async异步编程
Oct 22 #Javascript
You might like
Dedecms常用函数解析
2008/02/01 PHP
php 抽象类的简单应用
2011/09/06 PHP
php定义数组和使用示例(php数组的定义方法)
2014/03/29 PHP
关于javascript 回调函数中变量作用域的讨论
2009/09/11 Javascript
js RuntimeObject() 获取ie里面自定义函数或者属性的集合
2010/11/23 Javascript
js字符编码函数区别分析
2011/12/28 Javascript
jQuery+css实现百度百科的页面导航效果
2014/12/16 Javascript
jQuery实用技巧必备(上)
2015/11/02 Javascript
js获取url传值的方法
2015/12/18 Javascript
jQuery实现的超简单点赞效果实例分析
2015/12/31 Javascript
Bootstrap基本插件学习笔记之Tooltip提示工具(18)
2016/12/08 Javascript
Bootstrap中datetimepicker使用小结
2016/12/28 Javascript
Bootstrap3多级下拉菜单
2017/02/24 Javascript
Angular(5.2-&gt;6.1)升级小结
2018/12/27 Javascript
js实现继承的方法及优缺点总结
2019/05/08 Javascript
Vue.js递归组件实现组织架构树和选人功能案例分析
2019/07/03 Javascript
解决layer弹出层msg的文字不显示的问题
2019/09/11 Javascript
[02:36]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Magma 选手采访
2021/03/11 DOTA
详解python开发环境搭建
2016/12/16 Python
python sys,os,time模块的使用(包括时间格式的各种转换)
2018/04/27 Python
浅谈python中真正关闭socket的方法
2018/12/18 Python
python ipset管理 增删白名单的方法
2019/01/14 Python
讲解Python3中NumPy数组寻找特定元素下标的两种方法
2019/08/04 Python
Pytorch实现GoogLeNet的方法
2019/08/18 Python
flask框架url与重定向操作实例详解
2020/01/25 Python
python爬虫中的url下载器用法详解
2020/11/30 Python
微软英国官方网站:Microsoft英国
2016/10/15 全球购物
意大利简约的休闲品牌:Aspesi
2018/02/08 全球购物
轻化专业学生实习自我鉴定
2013/09/20 职场文书
进修护士自我鉴定
2013/10/14 职场文书
低碳日宣传活动总结
2014/07/09 职场文书
管理工程专业求职信
2014/08/10 职场文书
张家口市高新区党工委群众路线教育实践活动整改方案
2014/10/25 职场文书
爱心捐助活动总结
2015/05/09 职场文书
2016年社区服务活动总结
2016/04/06 职场文书
Redis唯一ID生成器的实现
2022/07/07 Redis