使用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 相关文章推荐
Html中JS脚本执行顺序简单举例说明
Jun 19 Javascript
基于jquery的图片的切换(以数字的形式)
Feb 14 Javascript
JS通过分析userAgent属性来判断浏览器的类型及版本
Mar 28 Javascript
jQuery实现鼠标滑过链接控制图片的滑动展开与隐藏效果
Oct 28 Javascript
jQuery实现的模拟弹出窗口功能示例
Nov 24 Javascript
js 实现获取name 相同的页面元素并循环遍历的方法
Feb 14 Javascript
JS实现的简单拖拽功能示例
Mar 13 Javascript
JS基于贪心算法解决背包问题示例
Nov 27 Javascript
jQuery实现右侧抽屉式在线客服功能
Dec 25 jQuery
微信小程序实现城市列表选择
Jun 05 Javascript
微信小程序项目总结之记账小程序功能的实现(包括后端)
Aug 20 Javascript
vue3+typeScript穿梭框的实现示例
Dec 29 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
PHP实现的交通银行网银在线支付接口ECSHOP插件和使用例子
2014/05/10 PHP
PHP获取当前所在目录位置的方法
2014/11/26 PHP
php缓冲输出实例分析
2015/01/05 PHP
php生成gif动画的方法
2015/11/05 PHP
ThinkPHP连接Oracle数据库
2016/04/22 PHP
利用PHP实现一个简单的用户登记表示例
2017/04/25 PHP
Thinkphp5 自定义上传文件名的实现方法
2019/07/23 PHP
用js实现预览待上传的本地图片
2007/03/15 Javascript
用javascript实现自定义标签
2007/05/08 Javascript
Ruffy javascript 学习笔记
2009/11/30 Javascript
IE8下String的Trim()方法失效的解决方法
2013/11/08 Javascript
jQuery 动态云标签插件
2014/11/11 Javascript
JavaScript的类型、值和变量小结
2015/07/09 Javascript
JS判断页面是否出现滚动条的方法
2015/07/17 Javascript
IE和Firefox之间在JavaScript语法上的差异
2016/04/22 Javascript
js点击按钮实现水波纹效果代码(CSS3和Canves)
2016/09/15 Javascript
微信小程序 新建登录页并实现tabBar隐藏
2017/06/13 Javascript
Javascript 严格模式use strict详解
2017/09/16 Javascript
小程序实现上下移动切换位置
2019/09/23 Javascript
vue vantUI实现文件(图片、文档、视频、音频)上传(多文件)
2019/10/15 Javascript
uni-app从安装到卸载的入门教程
2020/05/15 Javascript
通过数据库向Django模型添加字段的示例
2015/07/21 Python
Python书单 不将就
2017/07/11 Python
Python使用selenium实现网页用户名 密码 验证码自动登录功能
2018/05/16 Python
python中dict字典的查询键值对 遍历 排序 创建 访问 更新 删除基础操作方法
2018/09/13 Python
python实现自动登录
2018/09/17 Python
Python3实现定时任务的四种方式
2019/06/03 Python
基于python-pptx库中文文档及使用详解
2020/02/14 Python
Net-A-Porter美国官网:全球时尚奢侈品名站
2017/02/11 全球购物
中科软笔试题和面试题
2014/10/07 面试题
责任书范本
2014/08/25 职场文书
2014年国庆节广播稿
2014/09/19 职场文书
政风行风自查自纠报告
2014/10/21 职场文书
怎样写离婚协议书
2015/01/26 职场文书
中学生社区服务活动报告
2015/02/05 职场文书
Python-typing: 类型标注与支持 Any类型详解
2021/05/10 Python