0

ボタンをクリックすると座席が選択され、背景色が緑に変更され、同時にボタンの値がテキストフィールドに追加され、それに応じてトグルされ、同じ機能で私はjavascriptを使用してプログラムを作成しています別の値、つまりバスの料金を渡します。問題:座席ボタンをクリックすると運賃がテキストボックスに加算されますが、2 つ以上の座席ボタンをクリックすると、運賃はテキストボックスに加算されますが、運賃の合計は加算されません。また、選択した座席をクリックすると、運賃が合計運賃から差し引かれます。ここでは jquery を使用していません。plsは誰でも私を助けることができますか?

// 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;
    }
}
4

1 に答える 1

-1

したがって、あなたが正しく理解している場合、価格のテキストフィールドは、値の合計を取得するのではなく、コンマ区切りの配列として表示されます。その場合、次のことができます:

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

これは、 selectedFares array の合計を取得する必要があります。

お役に立てれば。

于 2012-12-10T10:10:12.427 に答える