当浮点部分为空时,从 JQuery 中的输入元素获取数字值不起作用
get number value from input element in JQuery not works when float parts empty
我想编写一个货币转换器,只允许整数和浮点数。所以我检测输入变化并进行一些计算。HTML 代码段如下所示:
<input type="number" id="currency">
JS是:
$("#currency").on("input", function(e){
var value = this.value
console.log(value)
});
一切正常,除了输入为"12."时,值为空字符串?我想要的实际上是 12。如何解决问题?任何帮助将不胜感激。片段的 JSfiddle
这是因为您正在使用不允许除数字(包括浮点数)以外的任何输入的input type="number"
。
但是你把字符串或字符作为输入,你会看到空的日志语句,在做parseInt(this.value)
时它会记录NaN
。
因此,如果您仍然想提供字符串/数字作为输入,您可以使用input type="text"
<input type="text" id="currency">
Input type="number"
表示包括float, integer
在内的任何数字,并且不允许输入文本。所以最好的解决方案可能是Input type="text"
,如果你想要精度,你可以通过 toFixed 方法,如下例所示
$("#currency").on("input", function(e){
var value = this.value
if(isNumeric(value)){
alert(parseInt(value));
}
else{
alert("text")
}
});
function isNumeric(n) {
return !isNaN(parseFloat(n)) && isFinite(n);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="currency">
您的问题与您的本地化有关。
正如大家所确认的那样,<input type="number">
允许输入整数和浮点数。
那么在输入 12.
时,为什么你会得到一个空的结果,而其他人得到 12?
因为他们的小数点是点,而你的小数点是别的东西!
例如:在我自己的系统上,小数点是逗号,键入12.
时得到空结果,键入12,
时得到 12 的结果。
相关文章:
- Javascript获取具有不同id的文件数's来自没有多个属性的文件输入元素
- 访问代码生成的输入元素上的keyup事件
- 使用 jQuery,当我在输入框外部单击时,如何更改输入元素的值
- 使用jQuery切换来显示内容,但防止在用户单击输入元素时关闭
- 如何使用角度事件处理程序引用输入元素的值
- 获取javascript中输入元素的索引
- 为什么Bootstrap typeahead不适用于具有相同ID的输入元素
- 如何使用javascript在输入元素中显示特殊字符
- 动态添加的输入元素不会在脚本中返回值
- 使用 jQuery 禁用除表单中的某些输入元素之外的所有输入元素
- 将焦点设置为输入元素角度 js
- 如何仅在输入元素具有焦点时才启动 setInterval
- 即使使用 parseInt,我也无法从输入元素中获取数值
- 通过应用自定义 css 类禁用 html 输入元素
- 聚合物 - 访问自定义元素内的 DOM 输入元素
- HTML-输入元素中不可删除的占位符
- 使用jquery将属性附加到输入元素
- 如果所有其他元素都填写在AngularJS中,如何动态添加新的输入元素
- 什么是输入元素上的innerHTML
- 输入元素模式属性的Javascript正则表达式在reFiddle上有效,但在页面上无效