![](/img/trans.png)
[英]Input[type="number"] handler not working properly [Formik, RegExp]
[英]Input type number not working properly
我的表格具有以下字段:
<div class="form-group">
<label for="num_auto_tests">Automated Tests</label>
<input type="number" class="form-control" id="num_auto_tests" placeholder="0">
</div>
显然,我将input type="number"
设置为input type="number"
。 但是,当我这样做时:
typeof($("#num_auto_tests).val())
返回string
-这弄乱了我的计算。我能做些什么使它“真正”成为数字吗?
先感谢您。
是的,文本字段的值是string
。 您需要执行类型转换才能转换为数字。
有两种方法。 Number()
和parseInt()
。 这是一个例子
typeof(Number($("#num_auto_tests").val()));
=> number
另外,如注释中所述,您还可以通过在加号前加上一个字符串来将字符串强制转换为数字。
typeof(+($("#num_auto_tests").val()));
在您的控制台中尝试
+("45")
=> 45
您要确保将值强制转换为整数。 使用parseInt()
: //www.w3schools.com/jsref/jsref_parseint.asp
<div class="form-group">
<label for="num_auto_tests">Automated Tests</label>
<input type="number" class="form-control" id="num_auto_tests" placeholder="0">
</div>
<script type="text/javascript">
var value = parseInt( $( '#num_auto_tests' ).val() );
</script>
如果要允许小数位数而不是强制整数,则可以使用parseFloat()
: //www.w3schools.com/jsref/jsref_parsefloat.asp
<script type="text/javascript">
var value = parseFloat( $( '#num_auto_tests' ).val() );
</script>
最后一个选择是使用Number()
函数-http://www.w3schools.com/jsref/jsref_number.asp
<script type="text/javascript">
var value = Number( $( '#num_auto_tests' ).val() );
</script>
请考虑将其解析为整数:
typeof parseInt($("#num_auto_tests").val(), 10);
=> number
如果要处理小数,则可以使用parseFloat()
。
发生的情况是您要限制用户可以“输入”的输入类型,这看起来与输入类型的文本不同。 但是,当您使用JQuery获取值时,您将获得它的字符串表示形式。 如果您需要使用数字,则可以通过以下任一方法对其进行解析:
var num = parseFloat($('#num_auto_tests').val())
要么
var num = parseFloat($('#num_auto_tests').val())
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.