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); 

完整实例

 代码如下 复制代码

<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">

<title>演示:使用Ctrl+Enter提交表单</title>
<link rel="stylesheet" type="text/css" href="../css/main.css" />
<style type="text/css">
.demo{margin:50px auto 0 auto; width:600px}
.demo span{color:#666; margin-left:10px}
textarea {display:block; width:450px;height:100px;border: 1px solid #ccc;}
.post{width: 230px;border: 1px solid #ccc;background: #ececec; padding: 10px; margin: 10px 0;}
button {border: 1px solid #ccc; background: #ececec;-webkit-border-radius: 3px;
-moz-border-radius: 3px;margin-top: 10px;padding: 5px 20px; cursor:pointer}
</style>
</head>

<body>
<div id="header">

<div id="main">
 
   <div class="demo">
  <div id="result"></div>
     <textarea name="msg" id="msg" placeholder="输入内容" autofocus></textarea>
     <button type="submit">提 交</button><span>可按“Ctrl+Enter”键提交</span>
   </div>
  
</div>

<script type="text/javascript" src="../js/jquery.js"></script>
<script type="text/javascript">
$.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);
}
 
$("#msg").ctrlEnter("button", function () {
       $("<p class='post'></p>").append(this.val().replace(/n/g, "<br/>")).fadeIn('slow').appendTo("#result");
       this.val("");
});
</script>

</body>
</html>

时间: 2024-09-14 00:23:11

jquery实现Ctrl+Enter提交表单代码的相关文章

使用JQuery实现Ctrl+Enter提交表单的方法_jquery

有时候我们为了省事就操作键盘组合键去代替使用鼠标,我们今天就使用JQuery实现Ctrl+Enter提交表单. 我们发帖时,在内容输入框中输入完内容后,可以点击"提交"按钮来发表内容.可是,如果你够"懒",你可以不用动鼠标,只需按住键盘上的Ctrl+Enter键,即可提交表单,完成内容发布. 当然,由于输入框是一个多行文本输入框textarea,我们知道,在textarea中按Enter(回车)键可以换行,并不能直接提交表单(submit),而默认情况下,浏览器忽略

jquery实现Ctrl+Enter提交表单的方法_jquery

本文实例讲述了jquery实现Ctrl+Enter提交表单的方法.分享给大家供大家参考.具体如下: <!DOCTYPE HTML> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <title>Text Box Enter</title> <style type="

让textarea支持ctrl+enter提交表单

让textarea支持ctrl+enter提交表单 1.让textarea支持ctrl+enter提交表单. 2.ctrl+enter提交表单之前,调用自己的验证函数,比如验证内容是否为空. 3.比如textarea是空的,我按ctrl+enter提交表单,会提示不要发空信息,似乎是正常的.可这时,会产生一个空行,再按一次,又会产生一个换行.我们就来解决这个问题. 表单代码: <form method="post" name="comment"> <

按Ctrl+Enter提交表单

 function   document.onkeydown()     {         if   (event.keyCode   ==   13   &&   event.ctrlKey)  if(checkemail_diaocha_ly())      document.form1.submit();     }     </script>

jq 点击文本域清除默认值与回车提交表单代码

jq 点击文本域清除默认值与回车提交表单代码 点击文本域,清除默认值.默认值显示时为灰色文字,点击后高亮显示,可绑定回车事件. 项目中常用到的一个效果,封装成一个小小的插件,一点不复杂,需要的看下demo演示中源码注释.若是不想只为清除一个默认文本调一个jquery库,可以用原生的按我的思路写一下,很简单. 特点 1.支持input文本域及textarea同时为多表单添加同样的默认值; 2.默认值可通过表单value值设定,也可通过插件参数(iset.curval)设置. iset.curval

JavaScript实现CTRL+回车提交表单

javascript|提交表单 <script type="text/javascript"> //Ctrl+回车 提交表单 // 例: <textarea name="textarea" ></textarea> // 注意: Form 必须有 Name 或 ID      function submitForm(formID) {         if(window.event.ctrlKey&&window.

IE 下Enter提交表单存在重复提交问题的解决方法

  这篇文章主要介绍了IE 下Enter提交表单存在重复提交问题的解决方法,需要的朋友可以参考下 在submit()后加个return false就可以了.如: 代码如下: document.formname.submit(); return false; 以后要注意了 后面尝试了另一种方法:   代码如下: if ($("#formid").validationEngine("validate")){ document.getElementById("f

jQuery ajaxSubmit 实现ajax提交表单局部刷新_jquery

AJAX简介 AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML). AJAX 不是新的编程语言,而是一种使用现有标准的新方法. AJAX 是与服务器交换数据并更新部分网页的艺术,在不重新加载整个页面的情况下. 需要引入 : jquery-form.js 使用说明: Java代码 $(document).ready(function() { var options = { target: '#mydiv', // 需要刷新的区域

Javascript 函数: CTRL+回车 提交表单

javascript|函数|提交表单 <script type="text/javascript"> //<![CDATA[ Javascript 函数: Ctrl+回车 提交表单 // 例: <textarea name="textarea" ></textarea> // 注意: Form 必须有 Name 或 ID      function submitForm(formName) {         if(wind