2013-08-12 126 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

謝謝指出!:) –