我正在编写一个混合移动应用程序,它使用 HTML 5 数字字段来显示正确的键盘。该应用程序有一个屏幕,可以实时更新允许小数位的值。
要明确一点,小数位有效,并且可以输入 - 不是问题。
该应用程序是用 AngularJS 编写的,我已经尝试使用 jqLite 直接从元素获取值,并通过 ng-model 使用分配的范围值。
这是它的行为方式:
- 输入
1
,值为1
- 输入
2
,值为12
- 输入
3
,值为123
- 输入
.
,根据Angular,value为undefined
,直接取值时为""
。 - 输入
4
,值为123.4
- 输入
5
,值为123.45
通常这不是什么大问题,但我试图在无效输入进入 Angular 之前强制拒绝它。我采取的方法是隐藏数字输入,并在其后面显示有效输入,这样看起来他们正在输入并且只能输入有效输入。在他们输入 .
之前,这非常有用,然后数字就消失了,并在他们继续时返回。
有没有一种方法可以从 HTML 5 number
类型的输入中获取值,而 .
后面没有任何值?
如果没有,有没有办法在输入进入 Angular 之前拒绝输入(在按下键时,preventDefault 不起作用,因为没有可靠的方法以 number
类型获取完整的当前输入字段)?
最佳答案
如果这是您想要的行为,您应该实现 custom vaildation在选择元素时检查输入并允许点,离开元素将触发验证。
我自己的观点,虽然可能无关紧要,但当用户输入 123.
时显示验证错误并在他继续输入时将其删除是可以的,但我就是这样。
关于javascript - HTML 5 "number"类型输入在输入小数位时没有值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34178868/