(转)详解关于回车键触发表单提交的问题

我们有时候希望通过敲击回车键在文本框(input element)里来提交表单(form),但有时候又不希望如此。比如搜索行为,我们希望输入完关键词之后直接按回车键来提交表单;而有些复杂的表单,可能要避免回车键的触发行为,否则就会造成误操作。

要控制这些行为,不需要借助 JS,浏览器已经帮我们做好了这些处理,下面总结了几条规则:

1.如果表单里有一个 type="submit" 的按钮,回车键生效;
[color=red]2.如果表单里只有一个 type="text" 的 input,回车键生效; [/color]
3.如果按钮不是用的 input,而是用 button,并且没有加 type,IE 下默认为 type=button,FX 默认为 type=submit;
4.其他表单元素如 textarea、select 不影响。
在实际的应用中,要让表单响应回车键很容易,只要保证表单里有个 type="submit" 按钮就行。而当只有一个文本框又不希望响应回车键该怎么办呢?我的办法有点别扭,就是再写一个无意义的文本框,然后隐藏起来。根据第三条规则,我们在用 button 的时候,尽量显示声明 type 以使浏览器表现一致。

看下面的例子:


<!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=utf-8">
<title>submit</title>
</head>
<body>
<h1>本demo演示在input框中enter键是否触发提交表单,来自 www.abaonet.com</h1>
<h2>一个表单元素的时候,提交</h2>
<form action="http://www.abaonet.com/">
<input type="text">
<input value="提交" type="button">
</form>
<h2>一个表单元素的时候,不提交</h2>
<form action="http://www.abaonet.com/">
<input type="text">
<input style="display: none;" type="text">
<input value="提交" type="button">
</form>
<h2>一个表单元素的时候,提交</h2>
<form action="http://www.abaonet.com/">
<input type="text">
<input style="display: none;" type="text">
<input value="提交" type="submit">
</form>
<h2>多个表单元素的时候,提交</h2>
<form action="http://www.abaonet.com/">
<input type="text">
<input type="text">
<input value="提交" type="submit">
</form>
<h2>多个表单元素的时候,不提交</h2>
<form action="http://www.abaonet.com/">
<input type="text">
<input type="text">
<input value="提交" type="button">
</form>
<h2>用button元素时,FX和IE下有不同的表现</h2>
<form action="http://www.abaonet.com/">
<input type="text">
<input type="text">
<button>提交</button>
</form>
</body>
</html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值