2016-05-14 85 views
0

我已經創建了一個JavaScript函數,當我們第一次訪問網頁時不起作用。它只會通過刷新頁面或第二次訪問它。onClick JavaScript在第一次訪問時不起作用(頁面訪問)

我如何確保它,當我們訪問該頁面首次

這裏工作,甚至是代碼:

<script type="text/javascript"> 

    /*--adding/subtracting no. of seats and price-- */ 

    function calculateSeat() 
    {  
     var nums = [document.getElementById('number_seat0').value, document.getElementById('number_seat1').value,document.getElementById('number_seat2').value,document.getElementById('number_seat3').value,document.getElementById('number_seat4').value]; 

     var num = 0; 

     for (i=0; i < nums.length; i++) { 
      num += +nums[i]; 
     } 

     document.getElementById('total_seat').value = num; 
     document.getElementById('total_amount').value = parseFloat(num * <?php echo $_SESSION['price'] ;?>).toFixed(2); 
     }; 
</script>  
+6

你是怎麼調用'calculateSeat'的? –

+2

'num + = + nums [i];'Waat? –

+0

您是否嘗試過IIFE?或'window.onload'? – jmargolisvt

回答

2

檢查下面的示例

<script type="text/javascript"> 
    function calculateSeat() { 

     // your php variables 
     var phpPrice = parseInt('<?php echo $_SESSION['price'] ;?>'); 

     // shortcut 
     var $byId = document.getElementById; //faster that querySelector 

     // list of your DOM elements with ids 
     var ids = ['number_seat0', 'number_seat1', 'number_seat2', 'number_seat3', 'number_seat4']; 

     // function that will be used in [].reduce 
     // to calculate your result 
     function getSum(total, id) { 
      return total + (+$byId(id).value); 
     }; 

     // total number 
     // Array.reduce docs: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce 
     var result = ids.reduce(getSum); 

     $byId('total_seat').value = result; 
     $byId('total_amount').value = (result * phpPrice).toFixed(2); 
    } 
</script>  
0

我有實際上設法通過簡單地將腳本放在身體標記的底部而不是頭部來解決這個問題(注意:以前的位置)。