求和而不是连接

时间:2012-03-02 00:01:06

标签: javascript

单击时我尝试将输入文本值增加1。这是一项非常简单的任务,但我无法使其正常运行。这是代码:

<script type="text/javascript">
$('#field').bind('click', function(){
    old_value = $(this).attr('value');
    $(this).attr('value', (old_value+1));
})
</script>
<form action="">
    <input type="text" value="1" id="field"/>
</form>

点击输入后,它的值不会增加。取而代之的是,在值的末尾添加数字1,即在3次点击后输入值为1111。你有什么想法我做错了吗?提前谢谢。

3 个答案:

答案 0 :(得分:6)

您需要进行类型转换,因为所有表单值都以字符串形式传递。

$('#field').bind('click', function(){
    old_value = parseInt($(this).attr('value'), 10);
    $(this).attr('value', (old_value+1));
})

Whatever you do don't forget to pass a radix (base) through to the parseInt function!

如果你忘了,可能会发生这种情况:

parseInt("010") # 8 

答案 1 :(得分:2)

一元+运算符可以方便地将字符串转换为数字

$(this).attr('value', (+old_value + 1));

或者您可以像其他答案描述的那样使用parseInt

答案 2 :(得分:0)

您需要将字符串解析为数字:

parseInt($(this).val(), 10)