为复选框赋值并添加数字

以下程序添加了许多总每次检查复选框与分配的号码.这是完美的(示例1).但是当我试图分配一个变量,计算之前(例2),它返回一个南总,有人能帮我解决这个问题吗?谢谢.例1.这是

选择 | 换行 | 行号
  1. <script type="text/javascript">
  2.     function checkTotal() {
  3.         document.listForm.total.value = '';
  4.         var sum = 0;
  5.         for (i=0;i<document.listForm.choice.length;i++) {
  6.           if (document.listForm.choice[i].checked) {
  7.               sum = sum + parseInt(document.listForm.choice[i].value);
  8.           }
  9.         }
  10.         document.listForm.total.value = sum;
  11.     }
  12. </script>
  13.  
  14. <form name="listForm">
  15. <input type="checkbox" name="choice" value="2" onchange="checkTotal()"/>2<br/>
  16. <input type="checkbox" name="choice" value="5" onchange="checkTotal()"/>5<br/>
  17. <input type="checkbox" name="choice" value="10" onchange="checkTotal()"/>10<br/>
  18. <input type="checkbox" name="choice" value="20" onchange="checkTotal()"/>20<br/>
  19. Total: <input type="text" size="2" name="total" value="0"/>
  20. </form>
  21.  

例2.这返回一个南总领域

选择 | 换行 | 行号
  1. <script type="text/javascript">
  2.     function checkTotal() {
  3.         document.listForm.total.value = '';
  4.         var sum = 0;
  5.         for (i=0;i<document.listForm.choice.length;i++) {
  6.           if (document.listForm.choice[i].checked) {
  7.               sum = sum + parseInt(document.listForm.choice[i].value);
  8.           }
  9.         }
  10.         document.listForm.total.value = sum;
  11.     }
  12. </script>
  13.  
  14. <form name="listForm">
  15. <input type="text" name="Item1cost" value="2" >2
  16. <input type="checkbox" name="choice" value="Item1cost" onchange="checkTotal()"/><br>
  17.  
  18. <input type="text" name="Item2cost" value="5" >5
  19. <input type="checkbox" name="choice" value="Item2cost " onchange="checkTotal()"/><br>
  20.  
  21. <input type="text" name="Item3cost " value="5" >5 
  22. <input type="checkbox" name="choice" value="Item3cost" onchange ="checkTotal()"/> <br>
  23.  
  24. <input type="test" name="Item4cost" value="20">20
  25. <input type="checkbox" name="choice" value="Item4cost" onchange="checkTotal()"/> <br>
  26.  
  27. Total: <input type="text" size="4" name="total" value="0"/>
  28. </form>
  29.  
# 回答1

’年代错误的假设可以引用一个价值数量从另一个元素.

选择 | 换行 | 行号
  1. <input type="text" name="Item1cost" value="2" >2
  2. <input type="checkbox" name="choice" value="Item1cost" onchange="checkTotal()"/>

复选框的值是字符串解析"Item1cost",显然NaN.你需要做的是采取复选框中的值和使用,对于获取元素的值,这个ID /的名字.

# 回答2

对不起,我不明白.你能给我一个例子吗?谢谢.
# 回答3

在上面的代码片段:

选择 | 换行 | 行号
  1. var box = document.getElementsByName("choice")[0];
  2. alert(box.value);
  3. var txt = document.getElementsByName(box.value)[0];
  4. alert(txt.value);
  5.  
  6. // or
  7. var box = document.listForm.choice[0];
  8. var txt = document.listForm[box.value]; // since there is only one such name
  9. alert(txt.value);
# 回答4

非常感谢.这么多意义一旦你给我怎么做. .
# 回答5

好不容易有人不知道Javascript,也不直观.我不得不处理解析的文本转换数字.对于任何想要做到这一点,这是代码的帮助下"Dormillich".还花了我半天.

选择 | 换行 | 行号
  1. <html>
  2. <head>
  3. <script type="text/javascript">
  4. function checkTotal() {
  5.     document.listForm.total.value = '';
  6.     var sum = 0;
  7.     for (i=0;i<document.listForm.choice.length;i++) {
  8.          if (document.listForm.choice[i].checked) {
  9.     var box = (document.listForm.choice[i]);
  10.         alert(box.value);
  11.     var txt = (document.listForm[box.value]); 
  12.            alert(txt.value);
  13.     sum = sum + parseInt(txt.value) ;    
  14.            alert(sum);
  15.            }
  16.     }
  17.      document.listForm.total.value = sum;
  18. }
  19. </script>
  20.  
  21. <form name="listForm">
  22. <input type="text" name="Item1cost" value="2" >2
  23. <input type="checkbox" name="choice" value="Item1cost" onChange="checkTotal()"/><br>
  24.  
  25. <input type="text" name="Item2cost" value="5" >5
  26. <input type="checkbox" name="choice" value="Item2cost" onChange="checkTotal()"/><br>
  27.  
  28. <input type="text" name="Item3cost" value="5" >5 
  29. <input type="checkbox" name="choice" value="Item3cost" onchange ="checkTotal()"/> <br>
  30.  
  31. <input type="test" name="Item4cost" value="20">20
  32. <input type="checkbox" name="choice" value="Item4cost" onChange="checkTotal()"/> <br>
  33.  
  34. Total: <input type="text" size="10" name="total" value="0"/>
  35. </form>
  36. </body>
  37. </html>
  38.  

标签: Javascript

添加新评论