我的表单包含以下字段:
<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"
。但是,当我这样做时:
typeof($("#num_auto_tests).val())
它返回string
- 这搞砸了我的计算。我能做些什么让它“真正”成为一个数字?
提前谢谢。
答案 0 :(得分:2)
是的,文本字段的值是string
。您需要执行类型转换才能转换为数字。
这有两种方法。 Number()
和parseInt()
。这是一个例子
typeof(Number($("#num_auto_tests").val()));
=> number
此外,正如评论中所提到的,您还可以通过在加号前加上字符串强制转换为数字。
typeof(+($("#num_auto_tests").val()));
在您的控制台中试用
+("45")
=> 45
答案 1 :(得分:2)
您希望确保将值转换为整数。使用parseInt()
- http://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()
- http://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>
答案 2 :(得分:0)
请考虑将其解析为整数:
typeof parseInt($("#num_auto_tests").val(), 10);
=> number
如果您要处理小数,则可以使用parseFloat()
。
答案 3 :(得分:0)
正在发生的事情是,您正在重新定义用户可以输入什么类型的输入,它将与输入类型文本看起来不同。 但是,当您使用JQuery获取值时,您将获得它的字符串表示形式。如果你需要使用你需要解析它的数字:
var num = parseFloat($('#num_auto_tests').val())
或
var num = parseFloat($('#num_auto_tests').val())