【发布时间】:2016-03-14 17:30:35
【问题描述】:
我正在编写一个混合移动应用程序,它使用 HTML 5 数字字段来显示正确的键盘。该应用程序有一个屏幕,其中值实时更新,允许小数位。
需要明确的是,小数位有效,并且可以输入 - 这不是问题。
该应用程序是用 AngularJS 编写的,我尝试使用 jqLite 直接从元素中获取值,并通过 ng-model 使用分配的范围值。
这是它的行为方式:
- 输入
1,值为1 - 输入
2,值为12 - 输入
3,值为123 - 输入
.,根据Angular值为undefined,直接取值时为""。 - 输入
4,值为123.4 - 输入
5,值为123.45
通常这不是什么大问题,但我试图强制在无效输入进入 Angular 之前将其拒绝。我采取的方法是隐藏数字输入,并在其后面显示有效输入,这样看起来就像他们正在输入并且只能输入有效输入。这很有效,直到他们输入 .,然后数字消失,并在他们继续时返回。
有没有办法从 HTML 5 number 类型输入中获取值,而 . 后面没有值?
如果没有,有没有办法在输入进入 Angular 之前拒绝输入(在 keydown 时,preventDefault 不起作用,因为没有可靠的方法在 number 类型字段中获取完整的当前输入)?
【问题讨论】:
标签: javascript angularjs html