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

为什么输入时按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>


FFIVE
浏览 403回答 3
3回答

九州编程

这是一个鲜为人知的“Quirk”已经出现了一段时间。我知道有些人已经以各种方式解决了这个问题。在我看来,最简单的绕过就是只有第二个输入不会显示给用户。虽然在后端并不是所有用户友好,它确实可以解决问题。我应该注意到,我听到这个问题最常见的地方是IE专用而不是FireFox或其他。虽然它似乎也影响了它们。

holdtom

这是我用来解决问题的代码:<form><input&nbsp;type="text"&nbsp;name="partid"&nbsp;id="partid"&nbsp;&nbsp;/><input&nbsp;type="text"&nbsp;name="StackOverflow1370021"&nbsp;value="Fix&nbsp;IE&nbsp;bug"&nbsp;style="{display:none}"&nbsp;/></form>
打开App,查看更多内容
随时随地看视频慕课网APP