【发布时间】:2014-07-28 09:56:36
【问题描述】:
如何获取 <input> 类型为 number 的标签的值?这听起来像是一个荒谬的问题,但在最近的1 Chrome 更新中,如果在字段中输入了无效字符,则以下代码将不起作用:
element.value //does not work as expected, will return ""
演示:http://jsfiddle.net/DerekL/zT4bf/
现在这令人沮丧。我正在使用这段代码来禁止无效字符:
$("element").on("input", function(){
this.value = this.value.replace(/[^0-9]/g, "");
});
但是由于它现在返回"",如果输入了无效字符,整个字段将被清空。这种行为以前没有发生过,只是在最近的 Chrome 更新中。这在 Firefox 中运行良好(尽管我不需要在 Firefox 中使用它。)
有没有办法获得<input> 的确切值?谢谢。
1:36.0.1985.49 beta-m
【问题讨论】:
-
见How to get the raw value an <input type="number"> field? - 简短回答,不要使用
type=number:( -
@akxlr - 嗯,这很有趣。我可以在 Chrome 35 中获取该字段的值,但在 Chrome 36 中无法获取。无论如何,该链接没有回答问题。它只是解释了原因。
-
<input>的精确值只有数字或者你也想要+符号 -
@Mr.Alien - 我想得到的是用户输入的确切字符串。
-
如果你真的,真的想让它看起来像一个数字输入,你可能会通过使用没有右边框的普通输入来伪造它,并且数字输入只在它旁边显示箭头,将滚动侦听器附加到普通文本输入,将 onchange 侦听器附加到数字输入,确保在表单输入中切换会跳过第二个输入.....
标签: javascript html google-chrome