【问题标题】:JavaScript for (pasting!) only numbers in a textfieldJavaScript 仅用于(粘贴!)文本字段中的数字
【发布时间】:2011-10-02 08:44:46
【问题描述】:

我正在使用this script 来创建一个只有数字的文本字段,它工作得很好,只有我的用户不能超过一个数字,而且我需要 7 位以上的数字,我猜很多人会使用副本粘贴。

我看到了一些使用 jquery 的解决方案,但接缝对我来说有点太重了,并且必须有一些允许粘贴的轻巧优雅的解决方案?

【问题讨论】:

  • JavaScript 试图限制我可以输入的内容,或者自动将焦点从一个字段转移到另一个字段,这非常烦人。
  • 是的。为什么不事后验证?

标签: javascript numbers formfield pasting


【解决方案1】:

可以使用HTML5中引入的number类型:

<input type="number" min="0" max="9999999">

并非所有地方都支持它,但您可以使用 input.onpropertychange 事件为 IE 添加回退,并在处理程序中检查 window.event.propertyName == 'value' 以侦听输入字段中的任何更改。

对于其他浏览器,您可以尝试“输入”事件。或者只是在blur 上验证和修改以更好地为用户服务。

正如其他人所提到的,在用户键入时这样做被认为是不好的做法。 number 属性添加了一种相当不错的自行处理此问题的方式。

【讨论】:

  • 假装 IE 始终是唯一不支持特定功能的浏览器是不好的。在这种情况下,Firefox 不支持 &lt;input type=number&gt;onpropertychange 事件。
  • @duri 对,同意。但我的意思是为不受支持的浏览器添加一个后备,这个示例只是其中一个示例。 FF 支持 'input' 事件,所以你可以将它用于 FF。但我不想粘贴整个库....
猜你喜欢
  • 1970-01-01
  • 2019-04-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多