使用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 相关文章推荐
利用JS实现浏览器的title闪烁
Jul 08 Javascript
把jquery 的dialog和ztree结合实现步骤
Aug 02 Javascript
Javascript中的关键字和保留字整理
Oct 16 Javascript
JavaScript indexOf方法入门实例(计算指定字符在字符串中首次出现的位置)
Oct 17 Javascript
为什么Node.js会这么火呢?Node.js流行的原因
Dec 01 Javascript
举例讲解AngularJS中的模块
Jun 17 Javascript
bootstrap flask登录页面编写实例
Nov 01 Javascript
jQuery将表单序列化成一个Object对象的实例
Nov 29 Javascript
js中变量的连续赋值(实例讲解)
Jul 08 Javascript
用Vue-cli搭建的项目中引入css报错的原因分析
Jul 20 Javascript
Mui使用jquery并且使用点击跳转新窗口的实例
Aug 19 jQuery
在 Angular6 中使用 HTTP 请求服务端数据的步骤详解
Aug 06 Javascript
实例详解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
php删除与复制文件夹及其文件夹下所有文件的实现代码
2013/01/23 PHP
PHP实现根据浏览器跳转不同语言页面代码
2013/08/02 PHP
PHP引用符&amp;的用法详细解析
2013/08/22 PHP
php的ajax简单实例
2014/02/27 PHP
PHP+memcache实现消息队列案例分享
2014/05/21 PHP
php 开发中加密的几种方法总结
2017/03/22 PHP
POST一个JSON格式的数据给Restful服务实例详解
2017/04/07 PHP
PHP实现生成模糊图片的方法示例
2017/12/21 PHP
yii2安装详细流程
2018/05/23 PHP
宝塔面板在NGINX环境中TP5.1如何运行?
2021/03/09 PHP
Jquery 最近浏览过的商品的功能实现代码
2010/05/14 Javascript
JS拖动技术 关于setCapture使用
2010/12/09 Javascript
javascript面向对象包装类Class封装类库剖析
2013/01/24 Javascript
css+js实现部分区域高亮可编辑遮罩层
2014/03/04 Javascript
JavaScript设计模式之工厂方法模式介绍
2014/12/28 Javascript
javascript流程控制语句集合
2017/09/18 Javascript
vue2.0+vue-dplayer实现hls播放的示例
2018/03/02 Javascript
Node.js笔记之process模块解读
2018/05/31 Javascript
微信小程序支付前端源码
2018/08/29 Javascript
解决vue select当前value没有更新到vue对象属性的问题
2018/08/30 Javascript
使用 Node.js 实现图片的动态裁切及算法实例代码详解
2018/09/29 Javascript
node.js使用fs读取文件出错的解决方案
2019/10/23 Javascript
vue动画—通过钩子函数实现半场动画操作
2020/08/09 Javascript
vue或react项目生产环境去掉console.log的操作
2020/09/02 Javascript
[47:39]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 LGD vs OPTIC
2018/03/31 DOTA
Python 变量类型详解
2018/10/10 Python
pytorch 共享参数的示例
2019/08/17 Python
通过celery异步处理一个查询任务的完整代码
2019/11/19 Python
python3.6.8 + pycharm + PyQt5 环境搭建的图文教程
2020/06/11 Python
用60行代码实现Python自动抢微信红包
2021/02/04 Python
IGK Hair官网:喷雾、洗发水、护发素等
2020/11/03 全球购物
酒店管理求职信范文
2014/04/06 职场文书
金融系毕业生自荐书
2014/07/08 职场文书
2014年保卫科工作总结
2014/12/05 职场文书
小平小道观后感
2015/06/09 职场文书
Java8中Stream的一些神操作
2021/11/02 Java/Android