Mar*_*ber 26 html forms submit form-submit
请考虑以下HTML:
<form action="">
<input />
<select>
<option>A</option>
<option>B</option>
</select>
<input type="submit" />
</form>
Run Code Online (Sandbox Code Playgroud)
如果焦点在input(文本框)上并且我按Enter键,则表单提交.
但是,如果焦点在select(下拉框)并且我按下回车,则没有任何反应.
我知道我可以找出一些JavaScript来覆盖它,但我想知道为什么命中输入不仅仅起作用?
有没有什么东西我会通过使用JavaScript捕获输入(可能是下拉列表的本机键盘可访问性)?
Cho*_*ula 21
这只是控制的本质.Enter键(或鼠标单击)是进行选择的原因.按Enter键提交表单会导致用户体验不佳,因为表单基本上不可用.
我不建议通过JavaScript更改行为,因为默认行为是常态,也是每个人都期望的.
(想象一下,如果您在下拉列表中进行选择时提交的每个表单都会是什么样的.例如,考虑在Amazon.com上搜索.一个选择一个类别然后输入搜索词.如果通过按下选择一个类别输入,表单将在输入搜索词之前提交.)
Sty*_*dev 11
选择标签非常有趣.Enter键唯一能做的就是一旦你点击下拉列表打开并使用箭头键选择一个选项,你可以按Enter键关闭下拉菜单.
令我难以置信的是W3规格.没有说明输入键应该做什么,每个浏览器都以同样的方式做!浏览器程序员可以完成以下任一操作.
当关注一个关闭的下拉列表时输入会选择:
打开下拉列表,这样您就可以在查看所有选项的同时键入它.
会提交表格.
然而每个人都决定不改变它...更令人惊奇的是,我已经设计了13年的网站,直到今天我才注意到这一点,当我从业务分析师那里得到错误修复时说他们不能在他们点击进入时提交表格!让我想起了Tiny Pony.
http://www.w3.org/TR/html401/interact/forms.html