Javascript控制回车键进行表单(form)提交(转)

Posted Jim

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Javascript控制回车键进行表单(form)提交(转)相关的知识,希望对你有一定的参考价值。

一、采用钩子事件去捕获

键盘事件有3个:

keydown,keypress,keyup分别是按下,按着没上抬,上抬键盘 。

$(document).keyup(function(event){
  if(event.keyCode ==13){
    $("#submit").trigger("click");
  }
});

推荐:keyup,防止笔记本键盘不小心触摸到。

1、有些文档中有写成这样:

$(window).keydown(function(){
...
})

XP系统IE6下是不成功的。

2、还有input的

$("input").keydown(function(){
...
})

这种情况要在input获取焦点时候,才能监听到键盘事件。

二、采用form表单的形式

1、回车测试:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">  
<html>  
<head>  
    <meta http-equiv="Content-Type" content="text/html; charset=GBK">  
    <title>submit例子 - aspxhome.com</title>  
</head>  
<body>  
    <h1>本demo演示在文本框中按enter键是否触发提交表单</h1>  
    <h2>默认情况下,一个文本框的时候,提交,不管按钮type是submit还是button</h2>  
    <form action="http://www.csdn.net">  
        <input type="text">  
        <input type="button" value="提交">  
    </form>  
    <h2>一个文本框的时候怎么才能做到不提交,方法是加一个隐藏掉的文本框</h2>  
    <form action="http://www.csdn.net">  
        <input type="text">  
        <input type="text" style="display:none">  
        <input type="button" value="提交">  
    </form>  
    <h2>只要有type为submit的按钮存在,一个文本框还是多个文本框都提交</h2>  
    <form action="http://www.csdn.net">  
        <input type="text">  
        <input type="submit" value="提交">  
    </form>  
    <h2>只要有type为submit的按钮存在,一个文本框还是多个文本框都提交</h2>  
    <form action="http://www.csdn.net">  
        <input type="text">  
        <input type="text">  
        <input type="submit" value="提交">  
    </form>  
    <h2>多个文本框的时候,不提交,用type为button的按钮就行啦</h2>  
    <form action="http://www.csdn.net">  
        <input type="text">  
        <input type="text">  
        <input type="button" value="提交">  
    </form>  
    <h2>用button元素时,FX和IE下有不同的表现</h2>  
    <form action="http://www.csdn.net">  
        <input type="text">  
        <input type="text">  
        <button>提交</button>  
    </form>  
    <h2>radio和checkbox在FX下也会触发提交表单,在IE下不会</h2>  
    <form action="http://www.csdn.net">  
        <input type="text">  
        <input type="radio" name="a">  
        <input type="checkbox" name="b">  
        <input type="checkbox" name="c">  
        <input type="button" value="提交">  
    </form>  
    <h2>type为image的按钮,等同于type为submit的效果</h2>  
    <form action="http://www.csdn.net">  
        <input type="text">  
        <input type="text">  
        <input type="image" src="/images/logo.gif">  
    </form>  
</body>  
</html>  

2、在form标签中来禁止enter键提交:

<form name="form" action="" method="post" onkeydown="if(event.keyCode==13)return false;" onSubmit="return checkSubmit();"> 

3、可以在form中增加一个隐藏的输入框。

4、可以在type="test"中增加onkeypress="javascript:return gosearch();"方法。

 

参考:

http://www.cnblogs.com/soundcode/p/6607746.html(以上内容转自此篇文章)

http://blog.csdn.net/u010871655/article/details/51260878(以上内容小部分转自此篇文章)

以上是关于Javascript控制回车键进行表单(form)提交(转)的主要内容,如果未能解决你的问题,请参考以下文章

用javascript控制form表单只提交请求,而不跳转

JavaScript给表单提交加上回车按钮,大侠请帮忙 答好我会在加分的 谢谢!!

JavaScript控制阻止表单提交

javascript表单的Ajax 提交插件的使用

form表单提交注意事项

遇到的一个Form表单自动提交问题解决办法