如何使用javascript在文本框中添加文本框值

时间:2012-12-10 09:50:39

标签: javascript javascript-events

我正在使用javascript创建一个程序,同时点击按钮会选择一个座位并将其背景颜色更改为绿色,同时按钮值将添加到文本字段中并相应地切换到相同的位置功能我传递另一个值,即公共汽车的票价。 问题:当我点击一个座位按钮时,它的票价正在添加到文本框中,但是如果我将点击两个或更多座位按钮,则票价仅添加到文本框中但不会计算票价的总和。再次当我点击一个选定的座位时,票价将从总票价中扣除。 在这里我不使用jquery。  请问有人可以帮助我吗?

// 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 个答案:

答案 0 :(得分:-1)

因此,如果我理解正确,价格的文本字段将显示为逗号分隔数组,而不是获取值的总和,如果是这样,您可以执行的操作如下:

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

这应该得到你selectedFares数组的总和。

希望这有帮助。