在textarea的thefly上的总数

时间:2015-07-25 22:20:35

标签: jquery

我有一个值为0的textarea。 我使用下面的代码加总+1但它变成01或011或0111等。

有什么想法吗?

我的代码是:

<input name="su" type="text" id="su" value="0">

<script>
$(document).ready(function() {
  $("input:radio").change(function() {

    var val1 = this.value;    

    if(val1 == 'true'){
        var addone = "1"; 
        $('#su').val($('#su').val()+addone);
    }
  });
});
</script>

4 个答案:

答案 0 :(得分:2)

因为在项目上使用+而不是涉及字符串会改为连接,例如:

0 + "1" -> "01"

您需要addone作为数字并将$('#su').val()转换为数字:

var addone = 1; 
$('#su').val( +$('#su').val() + addone );

答案 1 :(得分:1)

通过更改

使用parseInt()强制输入值为整数
$('#su').val($('#su').val()+addone);

$('#su').val(parseInt($('#su').val()) + parseInt(addone));

答案 2 :(得分:1)

由于addone是一个字符串而jquery&#39; s .val()返回一个字符串,因此您将两个字符串连接在一起,而不是添加数字。要改为添加数字,您需要将两者都转换为数字,如下所示:

 var addone= 1;
 $('#su').val(parseInt($('#su').val())+addone);

答案 3 :(得分:0)

input的值始终为string,如果您想获取数值,请使用parseInt

<script>
$(document).ready(function() {
  $("input:radio").change(function() {

    var val1 =parseInt(this.value);    //parseInt this

    if(val1 == 'true'){
        var addone = "1"; 
        $('#su').val(parseInt($('#su').val())+addone); //note this one too;
    }
  });
});
</script>