2012-12-10 81 views
0

我正在使用javascript創建程序,同時單擊按鈕它將選擇一個座標並將其背景顏色更改爲綠色,同時將按鈕值添加到文本字段,並將相應切換,並在相同的功能,我傳遞另一個值,即巴士的票價。 問題:當我點擊一個座位按鈕時,它的票價正在添加到文本框中,但是如果我點擊兩個或更多個座位按鈕,票價只會添加到文本框中,但不會執行票價的總和。再次點擊選定的座位時,票價將從總票價中扣除。 這裏我沒有使用jQuery。 請問有人可以幫我嗎?如何使用javascript在文本框內添加文本框的值

// Create a variable for the array! 
var selectedSeats = new Array(); 
var selectedFares= new Array(); 

// Build a function that will update the textfield. 
// Call this, whenever the array gets changed! 
function updateListOfSelectedSeats() { 
    document.getElementById('selectedseat').value = selectedSeats.join(','); 
    document.getElementById('selectedfare').value = selectedFares; 
} 

// Removes a seat from the list of selected seats 
function removeSeatFromList(seat,seatFare) { 
    for (var i = 0; i < selectedSeats.length; i++) { 
     if (selectedSeats[i] == seat) { 
      selectedSeats.splice(i, 1); 
      updateListOfSelectedSeats(); 
      removeFareFromList(seatFare); 
      break; 
     } 
    } 
} 
function removeFareFromList(seatFares) { 
    for (var i = 0; i < selectedFares.length; i++) { 
    if (selectedFares[i] == seatFares) { 
     selectedFares.splice(i, 1); 
     updateListOfSelectedSeats(); 
     break; 
    } 
    } 

}

// Now the function that reacts to clicks on a seat 
function setId(id, value,fare) { 
    var Seat = document.getElementById(id); 

    switch (Seat.style.backgroundImage) { 
     case 'url("themes/frontend/images/greenseat.png")': 
      // Seat is already selected and needs to be deselected 
      Seat.style.backgroundImage = 'url("themes/frontend/images/seat.png")'; 
      removeSeatFromList(value,fare); 
      break; 

     case '': 
     case 'url("themes/frontend/images/seat.png")': 
      // Seat is empty, select it! 
      Seat.style.backgroundImage = 'url("themes/frontend/images/greenseat.png")'; 
      selectedSeats.push(value); 
      selectedFares.push(fare); 
      updateListOfSelectedSeats(); 
      break; 
    } 
} 

回答

-1

所以,如果我理解正確的話,對於價格的文本字段顯示爲一個逗號分隔的數組,而不是獲取值的總和,如果是這樣的話一下就可以了做如下:

document.getElementById('selectedfare').value = eval(selectedFares.join('+')); 

這應該得到你selectedFares數組的總和。

希望這會有所幫助。

+0

Eval是邪惡的 - 在這種情況下,根據'selectedFares'的內容可能會導致許多問題。 – Jeff

相關問題