2013-08-12 124 views
-5

我有此脚本可以计算某些值的总和,因为用户可以从下拉列表中选择它们。我没有JS的专家。除了onchange,我想这个代码来计算页面加载的价值?我会假设它是这个代码的一些复制和粘贴与函数和if语句的变化?JS计算总变化量

<script> 
$(function() { 
    $(".DropChange").change(function(){ 
     var valone = $('#ValOne').val(); 
     var valtwo = $('#ValTwo').val(); 
     var valthree = $('#ValThree').val(); 
     var valfour = $('#ValFour').val(); 
     var valfive = $('#ValFive').val(); 
     var valsix = $('#ValSix').val(); 
     var valseven = $('#ValSeven').val(); 
     var valeight = $('#ValEight').val(); 
     var total = ((valone * 1) + (valtwo * 1) + (valthree * 1) + (valfour * 1) + (valfive * 1) + (valsix * 1) + (valseven * 1) + (valeight * 1)); 
     $('#Total').text(total); 
    }); 
}); 
</script> 
+0

JavaScript是不是Java! –

+0

复制粘贴相同的代码通常是一个坏习惯;你可以做一个包含你的脚本的函数,比如calcTotal(),并且在改变事件和页面加载时调用它。 –

回答

1

可能是你最简单的选择是坚持当前onchange功能到另一个功能。

var calculateTotals = function(){  
    var valone = $('#ValOne').val(); 
    var valtwo = $('#ValTwo').val(); 
    var valthree = $('#ValThree').val(); 
    var valfour = $('#ValFour').val(); 
    var valfive = $('#ValFive').val(); 
    var valsix = $('#ValSix').val(); 
    var valseven = $('#ValSeven').val(); 
    var valeight = $('#ValEight').val(); 
    var total = ((valone * 1) + (valtwo * 1) + (valthree * 1) + (valfour * 1) + (valfive * 1) + (valsix * 1) + (valseven * 1) + (valeight * 1)); 
    $('#Total').text(total); 
}; 

然后改变你的onchange

$(".DropChange").change(calculateTotals); 

所以你$(function(){ ... });现在看起来像;

$(function(){ 
    $(".DropChange").change(calculateTotals); // assign event 
    calculateTotals(); // calculate totals on load 
}); 
0

这里是你需要的东西:

<script> 
(function() { 
    $(document).ready(function(){ 
     showSum(); 
     }); 

     $(".DropChange").change(function(){ 
      showSum(); 
     } 
     function showSum(){ 
      var valone = $('#ValOne').val(); 
      var valtwo = $('#ValTwo').val(); 
      var valthree = $('#ValThree').val(); 
      var valfour = $('#ValFour').val(); 
      var valfive = $('#ValFive').val(); 
      var valsix = $('#ValSix').val(); 
      var valseven = $('#ValSeven').val(); 
      var valeight = $('#ValEight').val(); 
      var total = ((valone * 1) + (valtwo * 1) + (valthree * 1) + (valfour * 1) + (valfive * 1) + (valsix * 1) + (valseven * 1) + (valeight * 1)); 
     $('#Total').text(total); 
     } 
}()); 
</script> 
+1

这个_ $(function(){_相当于_ $(document).ready(function(){_参见:http://api.jquery.com/ready/ –

+0

谢谢指出!:) –