我有一个值为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>
答案 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>