使用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教程:window.location使用方法的区别介绍
Oct 04 Javascript
jQuery获取节点和子节点文本的方法
Jul 22 Javascript
jQuery类选择器用法实例
Dec 23 Javascript
使用Node.js为其他程序编写扩展的基本方法
Jun 23 Javascript
jQuery插件EasyUI获取当前Tab中iframe窗体对象的方法
Aug 05 Javascript
JavaScript编写棋盘覆盖代码详解
Aug 28 Javascript
vue项目国际化vue-i18n的安装使用教程
Mar 14 Javascript
Angular模版驱动表单的使用总结
May 05 Javascript
json前后端数据交互相关代码
Sep 19 Javascript
JavaScript快速调试的两个技巧
Nov 04 Javascript
JS一分钟在github+Jekyll的博客中添加访问量功能的实现
Apr 03 Javascript
一文带你理解vue创建一个后台管理系统流程(Vue+Element)
May 18 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程序总是提示验证码输入有误解决方案
2015/01/07 PHP
php判断一个数组是否为有序的方法
2015/03/27 PHP
解决php扩展安装不生效问题
2019/10/25 PHP
JS对外部文件的加载及对IFRMAME的加载的实现,当加载完成后,指定指向方法(方法回调)
2011/07/04 Javascript
最短的javascript:地址栏载入脚本代码
2011/10/13 Javascript
jQuery使用之处理页面元素用法实例
2015/01/19 Javascript
原生JavaScript实现动态省市县三级联动下拉框菜单实例代码
2016/02/03 Javascript
JS+HTML5手机开发之滚动和惯性缓动实现方法分析
2016/06/12 Javascript
微信小程序 获取当前地理位置和经纬度实例代码
2016/12/05 Javascript
详解Vue2 无限级分类(添加,删除,修改)
2017/03/07 Javascript
小程序中canvas的drawImage方法参数使用详解
2019/07/04 Javascript
微信小程序简单的canvas裁剪图片功能详解
2019/07/12 Javascript
JS原型和原型链原理与用法实例详解
2020/02/05 Javascript
javascript设计模式 ? 代理模式原理与用法实例分析
2020/04/16 Javascript
JavaScript实现移动小精灵的案例代码
2020/12/12 Javascript
JavaScript实现消消乐的源代码
2021/01/12 Javascript
Python可跨平台实现获取按键的方法
2015/03/05 Python
opencv3/python 鼠标响应操作详解
2019/12/11 Python
python读取当前目录下的CSV文件数据
2020/03/11 Python
Tensorflow tf.nn.atrous_conv2d如何实现空洞卷积的
2020/04/20 Python
乐天旅游台湾网站:Rakuten Travel TW
2017/06/01 全球购物
中东奢侈品市场:Coveti
2019/05/12 全球购物
你所在的项目是如何确定版本号的
2015/12/28 面试题
Java程序员综合测试题
2014/04/25 面试题
大学本科毕业生的自我鉴定
2013/11/26 职场文书
集团公司人力资源部岗位职责
2014/01/03 职场文书
上课玩手机检讨书
2014/02/08 职场文书
会走路的树教学反思
2014/02/20 职场文书
幼儿教师演讲稿
2014/05/06 职场文书
2015高中教师个人工作总结
2015/07/21 职场文书
公安纪律作风整顿心得体会
2016/01/23 职场文书
十一月早安语录:把心放轻,人生就是一朵自在的云
2019/11/04 职场文书
pytorch 中autograd.grad()函数的用法说明
2021/05/12 Python
利用python Pandas实现批量拆分Excel与合并Excel
2021/05/23 Python
Opencv实现二维直方图的计算及绘制
2021/07/21 Python
Python图像处理库PIL详细使用说明
2022/04/06 Python