document.getElementById("abcd").value += values[0];
values[0]是不断变化的,要求每次通过onclick触发事件后,通过函数赋值给表单中的一个name=abcd的input显示计算结果,只有一个name=abcd的显示框,如何将每次获取的结果相加成一个数字来显示呢?
也就是,我第一次点击后,得到的结果是1000,第二次的结果是2000,第三次点击得到3000,要求每一次点击后,abcd显示本次点击结果和上一次的结果相加产生的数字,如以上三次点击得到的abcd值分别为:1000,3000,6000我用上面那种写法,好像是把字符串相加了。。结果是1000,3000,6000这样,而不是三次点击后得到一个总数6000

解决方案 »

  1.   

    相加前先 parseInt(str) 转换成数字.
      

  2.   

    楼上正解,用Number()吧,通用点
      

  3.   

    document.getElementById("abcd").value =document.getElementById("abcd").value-0+ values[0];//-0转化为数字
      

  4.   

    一个扩展的问题,因为我是用checkbox触发事件的,如何防止用户两次点击啊?这样就会出现重复结果了?
      

  5.   

    这样试试
    document.getElementById("abcd").value =(document.getElementById("abcd").value-0)+ values[0];//-0转化为数字
      

  6.   

    那如何防止用户多次点击checkbox产生多次统计结果呢?也就说,如何设置每一个checkbox只能是勾选后的才能进行统计呢?而不是checkbox的onclick无论勾选与否都统计了?
      

  7.   

    <input type="checkbox" value="1000" onclick="countprice(this.value)" /> 这样写的话,无论是否勾选,只要单击都进行统计了,。这样如果多次点击同一个checkbox,统计结果就会出现重复累加了
    这个应该怎么避免啊?
      

  8.   

    <input type="checkbox" value="1000" flag='true' onclick="countprice(this.value,this)" />function countprice(val,obj)
    {
        if(obj.checked&&obj.flag){
             obj.flag=false;
             // do sth
        }}