javascript - HTML 5 "number"类型输入在输入小数位时没有值

标签 javascript angularjs html

我正在编写一个混合移动应用程序,它使用 HTML 5 数字字段来显示正确的键盘。该应用程序有一个屏幕,可以实时更新允许小数位的值。

要明确一点,小数位有效,并且可以输入 - 不是问题。

该应用程序是用 AngularJS 编写的,我已经尝试使用 jqLit​​e 直接从元素获取值,并通过 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/

相关文章:

javascript - 按钮在 .appendChild 之后丢失引用

angularjs - ionic 应用程序启动事件

node.js - 将 AngularJS 应用程序部署到普通 Apache HTTP 服务器是一种常见的选择吗?

javascript - 在 Angular Material 中为 mdDialog Controller 设置数组类型语法

html - <svg> 没有缩放到页面宽度的问题

javascript - 仅打开选项卡一次

javascript - 如何将所选选项动态附加到 div 并在所选选项更改时更新?

javascript - 提交不是 FormPanel api 中的函数

javascript - 有没有等同于 webkitGetAsEntry 的 mozilla?

javascript - 不断更新数值。 (ajax - 来自 .php 文件的民意调查)