为了账号安全,请及时绑定邮箱和手机立即绑定

为什么输入时按Enter键会提交带有单个输入字段的表单

为什么输入时按Enter键会提交带有单个输入字段的表单

FFIVE 2019-08-08 16:27:15
为什么输入时按Enter键会提交带有单个输入字段的表单为什么<form>单个<input>字段的a会在用户输入值并按下时重新加载表单Enter,如果?中有2个或更多字段则不会<form>。我写了一个简单的页面来测试这种古怪。如果您在第二个表单中输入一个值并按Enter键,您将看到它重新加载传递输入值的页面,就像您调用了一样GET。为什么?我该如何避免呢?<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>testFormEnter</title></head><body><form>   <input type="text" name="partid2" id="partid2" />   <input type="text" name="partdesc" id="partdesc"  /></form>   <p>2 field form works fine</p><form><input type="text" name="partid" id="partid"  /></form><p>One field form reloads page when you press the Enter key why</p></body></html>
查看完整描述

3 回答

?
九州编程

TA贡献1785条经验 获得超4个赞

这是一个鲜为人知的“Quirk”已经出现了一段时间。我知道有些人已经以各种方式解决了这个问题。

在我看来,最简单的绕过就是只有第二个输入不会显示给用户。虽然在后端并不是所有用户友好,它确实可以解决问题。

我应该注意到,我听到这个问题最常见的地方是IE专用而不是FireFox或其他。虽然它似乎也影响了它们。


查看完整回答
反对 回复 2019-08-08
?
holdtom

TA贡献1805条经验 获得超10个赞

这是我用来解决问题的代码:

<form><input type="text" name="partid" id="partid"  /><input type="text" name="StackOverflow1370021" value="Fix IE bug" style="{display:none}" /></form>


查看完整回答
反对 回复 2019-08-08
  • 3 回答
  • 0 关注
  • 400 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信