我观察到表单元素应该至少需要一个输入类型=" text"元素在输入时提交表格。
这是我的代码:
<form ng-submit="executeFunc()">
<input type="text"/>
<input type="submit"/>
</form>
但是,如果我们没有第一个输入类型=&#34; text&#34;元素,而不是我们有单选按钮或选择框,复选框。 如果是这个场景,那么如何在输入时提交表单。
我想知道它是否符合W3C标准,我们需要提供至少一种输入类型&#34; text&#34;元素?
答案 0 :(得分:2)
关于添加的问题“根据W3C标准,我们需要提供至少一个输入类型”text“元素?”,答案是没有HTML规范要求表单可以提交按Enter键。这些规范(隐约地)描述了可能所做的浏览器。
最初,我们的想法是,您可以在填写输入字段后按Enter键提交仅包含一个文本输入字段(以及可能的辐射按钮和复选框)的表单。这被认为对简单表单(通常是搜索表单或订阅表单)很有用,可以使用户更快地完成任务。
后来,这个想法经常扩展到具有多个文本输入字段的表单。这通常会导致问题,因为用户可能会在填写他应填写的所有字段之前按Enter键。然而,这就是现代浏览器通常的行为方式(假设表单中有提交按钮)。
HTML5遵循传统,只是描述了浏览器可能会做什么,尽管在Implicit submission部分强烈推荐(但不要求一致性)共同行为偏离传统:
如果用户代理支持让用户隐式提交表单 (例如,在某些平台上按下“输入”键而不是文本 字段集中隐式提交表单),然后这样做 默认按钮具有已定义的激活行为的表单必须导致 用户代理在该默认值上运行合成点击激活步骤 按钮。
[...]
注意:网络上的网页只有在有办法的情况下才可用 隐式提交表单,因此强烈建议用户代理 支持这个
(关于原始问题,答案是你需要在JavaScript中处理这些事情,@ bardznusny的回答显示了一种简洁的方法。)
答案 1 :(得分:1)
每次按下click
键时,只需在提交按钮上触发enter
事件。
$(document).keypress(function (e) {
if (e.keyCode === 13) {
$('input[type="submit"]').click();
}
});