2015-10-19 68 views
1

我有一个被角处理的基本形式形式(类和标签为清楚起见省略):角提交上输入不工作的号码输入移动

<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> 

回答

2

移动键盘不工作,你认为它的方式,这就是问题所在。如果表格中只有1个输入字段,则回车键提交表格,但如果有2个或更多输入键移动到下一个输入。

在您的<form>示例中,它缺少数字字段后的提交按钮。所以Chrome没有接下来的输入。所以这只是一个死路一条。

您可以尝试添加一个<input type="submit" value="Go">并将其可见性设置为0.我建议至少有一个小提交图标。

仅通过输入键提交的表单在设计上不具有移动友好性。

下面是一个类似SO问题的引用:

HTML: Why does Android browser show "Go" instead of "Next" in keyboard?

+0

如果只有文字输入存在不提交输入,移动键盘将提交表单。如果只有输入的数字没有提交输入,手机键盘将不会提交表单...因此,理论上Angular没有要求我们提交表单。那么为什么移动键盘的不同行为在这两种输入类型之间输入按钮? – Propaganistas

+1

这不是一个角度问题。 Chrome浏览器对单个文本输入的默认行为是假设它是一个搜索字段。如果该字段是数字类型,则提交没有默认名称,因此Chrome不知道要输入密钥的内容。所以它只是忽略它。这是我知道的转储,但这就是我的理解。 – cgTag

+0

好的,感谢您澄清作为搜索字段的文本输入的默认行为。后续问题:如果一个可见的