使用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跨域总结
Aug 30 Javascript
超简单JS二级、多级联动的简单实例
Feb 18 Javascript
页面刷新时记住滚动条的位置jquery代码
Jun 17 Javascript
JS实现倒计时和文字滚动的效果实例
Oct 29 Javascript
jquery中ready()函数执行的时机和window的load事件比较
Jun 22 Javascript
深入理解js数组的sort排序
May 28 Javascript
jQuery实现按比例缩放图片的方法
Apr 29 jQuery
基于Vue实现页面切换左右滑动效果
Jun 29 Javascript
10行原生JS实现文字无缝滚动(超简单)
Jan 02 Javascript
vue iview组件表格 render函数的使用方法详解
Mar 15 Javascript
Nuxt.js之自动路由原理的实现方法
Nov 21 Javascript
AJAX引擎原理以及XmlHttpRequest对象的axios、fetch区别详解
Apr 09 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+MySQL的聊天室设计
2006/10/09 PHP
Win2003下APACHE+PHP5+MYSQL4+PHPMYADMIN 的简易安装配置
2006/11/18 PHP
PHP 常用函数库和一些实用小技巧
2009/01/01 PHP
WordPress中的shortcode短代码功能使用详解
2016/05/17 PHP
php中的抽象方法和抽象类
2017/02/14 PHP
PHP实现的激活用户注册验证邮箱功能示例
2017/06/06 PHP
PHP+RabbitMQ实现消息队列的完整代码
2019/03/20 PHP
Mac OS X 系统下安装和部署Egret引擎开发环境
2014/09/03 Javascript
JavaScript中的ubound函数使用实例
2014/11/04 Javascript
JS表格组件神器bootstrap table详解(基础版)
2015/12/08 Javascript
angularJS Provider、factory、service详解及实例代码
2016/09/21 Javascript
关于List.ToArray()方法的效率测试
2016/09/30 Javascript
JS命令模式例子之菜单程序
2016/10/10 Javascript
Javascript实现购物车功能的详细代码
2018/05/08 Javascript
详解Node.js中path模块的resolve()和join()方法的区别
2018/10/29 Javascript
Angular6使用forRoot() 注册单一实例服务问题
2019/08/27 Javascript
layui 关闭open弹出框 刷新table表格页面的方法
2019/09/16 Javascript
微信小程序跨页面数据传递事件响应实现过程解析
2019/12/19 Javascript
python从网络读取图片并直接进行处理的方法
2015/05/22 Python
python数据处理实战(必看篇)
2017/06/11 Python
Django 根据数据模型models创建数据表的实例
2018/05/27 Python
Python 变量类型详解
2018/10/10 Python
opencv python在视屏上截图功能的实现
2020/03/05 Python
基于python SMTP实现自动发送邮件教程解析
2020/06/02 Python
python中time、datetime模块的使用
2020/12/14 Python
处理HTML5新标签的浏览器兼容版问题
2017/03/13 HTML / CSS
欧洲顶级体育电子商务网站:SportsShoes.com
2018/03/27 全球购物
什么是会话Bean
2015/05/14 面试题
旅游个人求职信范文
2014/01/30 职场文书
小学清明节活动方案
2014/03/08 职场文书
应届毕业生求职信范文
2014/07/07 职场文书
应届毕业生求职简历自我评价
2015/03/02 职场文书
酒店员工管理制度
2015/08/05 职场文书
《秋天的图画》教学反思
2016/02/19 职场文书
基于Apache Hudi在Google云构建数据湖平台的思路详解
2022/04/07 Servers
vue里使用create, mounted调用方法
2022/04/26 Vue.js