我有一个由Angular处理的基本表单(为清晰起见省略了类和标签):
<form>
<input type="text" />
<input type="number" />
</form>
在桌面视图中,两个输入都允许我按Enter键将表单提交给Angular。
但是,在移动视图上(在Chrome Android 5.0上测试过),只有文本输入允许按下输入按钮将表单提交给Angular。在数字输入中按Enter按钮时,没有任何反应。
这是一个已知的错误吗?此问题是否存在解决方法?
编辑:
只有一个输入时也会出现相同的行为:
<form>
<input type="text" />
</form>
<form>
<input type="number" />
</form>
答案 0 :(得分:2)
移动键盘并不像您认为的那样工作,这就是问题所在。如果表单中只有1个输入字段,则输入键将提交表单,但如果有2个或更多输入字段则返回下一个输入。
在您的<form>
示例中,它在号码字段后缺少提交按钮。所以Chrome没有下一个输入。所以它只是一个死胡同。
您可以尝试添加<input type="submit" value="Go">
并将其可见性设置为0.我建议您至少提交一个小提交图标。
仅通过回车键提交的表单设计不符合移动设备。
这里提到了类似的SO问题:
HTML: Why does Android browser show "Go" instead of "Next" in keyboard?