让textarea支持ctrl+enter提交表单

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

<form method="post" name="comment">
<textarea id="comments"  onkeydown= "网页特效:if(event.ctrlkey && event.keycode==13)if(这里是你的验证函数()) document.comment.submit();else return false;"></textarea>
</form>

在js里这样写:

function 验证函数(){
    if{
return false
}
    else{
        return true
    }
}

在表单里后面的else return false是为了防止有无谓的换行。
而在js里要return true,是为了防止return false后无法键入字符

1.现在关键是要取得各键对应的键值,先运行一下下面的脚本测试键值:

<script event="onkeydown" for="document">
alert(event.keycode)
</script>

2.好了,测试到回车键的键值为13,ctrl键的键值为17,于是有:

<form action="test.asp教程" onkeydown="if(event.keycode==17&&event.keycode==13)this.submit()">
<textarea name="content"></textarea>
</form>

3.测试一下看看?没成功,因为每次keydown事件只有一个键,也就是说event,keycode不可能同时等于13和17,这时要同时捕获ctrl键,就要用event.ctrlkey了,修改如下:

<form action="test.asp" onkeydown="if(event.ctrlkey&&event.keycode==13)this.submit()">
<textarea name="content"></textarea>
</form>

 提示:按键的事件句柄除了onkeydown外,还有onkeyup和onkeypress;判断左边的ctrl键还可以用event.ctrlleft。
特别提示
代码运行后在多行文本框内按下ctrl+enter键,表单将自动提交效果如图1.4.30所示。

时间: 2024-09-16 14:18:39

让textarea支持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

使用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="

按Ctrl+Enter提交表单

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

JavaScript实现CTRL+回车提交表单

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

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

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

Javascript中CTRL+回车提交表单

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

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

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

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

在submit()后加个return false就可以了.如: 复制代码 代码如下: document.formname.submit(); return false; 以后要注意了 后面尝试了另一种方法: 复制代码 代码如下: if ($("#formid").validationEngine("validate")){ document.getElementById("formid").submit(); } 也是可以的