使用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 相关文章推荐
javascript表单验证 - Parsley.js使用和配置
Jan 25 Javascript
javascript实现淡蓝色的鼠标拖动选择框实例
May 09 Javascript
AngularJS 中的指令实践开发指南(一)
Mar 20 Javascript
对js eval()函数的一些见解
Aug 15 Javascript
Angular中使用ui router实现系统权限控制及开发遇到问题
Sep 23 Javascript
React Router基础使用
Jan 17 Javascript
jQuery图片查看插件Magnify开发详解
Dec 25 jQuery
CKEditor 4.4.1 添加代码高亮显示插件功能教程【使用官方推荐Code Snippet插件】
Jun 14 Javascript
layer.open的自适应及居中及子页面标题的修改方法
Sep 05 Javascript
node.js中对Event Loop事件循环的理解与应用实例分析
Feb 14 Javascript
vue+elementUI 实现内容区域高度自适应的示例
Sep 26 Javascript
详解CocosCreator项目结构机制
Apr 14 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调用数据库的存贮过程
2006/10/09 PHP
网页游戏开发入门教程三(简单程序应用)
2009/11/02 PHP
smarty内置函数foreach用法实例
2015/01/22 PHP
php备份数据库类分享
2015/04/14 PHP
Joomla调用系统自带编辑器的实现方法
2016/05/05 PHP
禁止直接访问php文件代码分享
2020/05/05 PHP
PHP实现本地图片转base64格式并上传
2020/05/29 PHP
载入进度条 效果
2006/07/08 Javascript
JQuery困惑—包装集 DOM节点
2009/10/16 Javascript
javascript getElementsByClassName实现代码
2010/10/11 Javascript
jQuery下拉美化搜索表单效果代码分享
2015/08/25 Javascript
基于JavaScript实现瀑布流效果(循环渐近)
2016/01/27 Javascript
Nodejs中使用captchapng模块生成图片验证码
2017/05/18 NodeJs
js jquery 获取某一元素到浏览器顶端的距离实现方法
2018/09/05 jQuery
利用JS动态生成隔行换色HTML表格的两种方法
2018/10/09 Javascript
JavaScript 常见的继承方式汇总
2020/09/17 Javascript
微信小游戏中three.js离屏画布的示例代码
2020/10/12 Javascript
Swiper实现导航栏滚动效果
2020/10/16 Javascript
python获取list下标及其值的简单方法
2016/09/12 Python
python读文件保存到字典,修改字典并写入新文件的实例
2018/04/23 Python
python 简单照相机调用系统摄像头实现方法 pygame
2018/08/03 Python
python批量修改图片后缀的方法(png到jpg)
2018/10/25 Python
python实现写数字文件名的递增保存文件方法
2018/10/25 Python
Django接收post前端返回的json格式数据代码实现
2019/07/31 Python
python__name__原理及用法详解
2019/11/02 Python
纯CSS3打造动感漂亮时尚的扇形菜单
2014/03/18 HTML / CSS
介绍一下Linux文件的记录形式
2012/04/18 面试题
大班上学期幼儿评语
2014/04/30 职场文书
教师反腐倡廉演讲稿
2014/09/03 职场文书
党代会心得体会
2014/09/04 职场文书
党员干部三严三实心得体会
2014/10/13 职场文书
2015年销售助理工作总结
2015/05/11 职场文书
党员身份证明材料
2015/06/19 职场文书
丧事主持词
2015/07/02 职场文书
Python+tkinter实现高清图片保存
2022/03/13 Python
Windows Server 2022 超融合部署(图文教程)
2022/06/25 Servers