输入类型编号无法正常工作

时间:2015-12-28 22:48:55

标签: javascript jquery html forms input

我的表单包含以下字段:

<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 - 这搞砸了我的计算。我能做些什么让它“真正”成为一个数字?

提前谢谢。

4 个答案:

答案 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

HTML

<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>

的JavaScript

<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())