У меня есть простая функция JavaScript, которая проверяет, является ли тип поездки безопасным

    function CheckIfSafeRideRoundTrip()
    {
        var comboBox = $find("<%=rcmb_TripType.ClientID%>");
        var selectedTripType = comboBox.get_selectedItem().get_text();
        var isAirportRoundTrip = false;
        if(selectedTripType == "Safe Ride - Round Trip");
            isAirportRoundTrip = true;
        return isAirportRoundTrip;

    }

Значение selectedTripType возвращает "Round Trip - Airport", но по некоторым причинам булево выражение сравнения возвращает true и устанавливает isAirportRoundTrip в true. rcmb_TripType является telerik radComboBox, который не имеет значения, поскольку я убедился в значении selectedTripType через отладчик в качестве дополнительной информации. Я называю функцию

    function BuildConfirmationLayout()
    {
        var divOthersAddressInfo = document.getElementById("div_OthersLocationInfo");
        var divAirportAddressInfo = document.getElementById("div_AirPortLocationInfo");
        var divAirportRoundTrip = document.getElementById("div_Airport_SecondTicketDate");
        var divSaferideRoundTrip = document.getElementById("div_SafeRide_Standby");
        var isAirport = CheckIfAirportTrip();
        var isAirportRoundTrip = CheckIfAirportRoundTrip();
        var isSafeRideRoundTrip = CheckIfSafeRideRoundTrip();

        if (isAirport) {
            divOthersAddressInfo.style.display = "none";
            divAirportAddressInfo.style.display = "block";
            divAirportRoundTrip.style.display = "none";
            divSaferideRoundTrip.style.display = "none";
        }
        else {
            divAirportAddressInfo.style.display = "none";
            divOthersAddressInfo.style.display = "block";
            divAirportRoundTrip.style.display = "none";
            divSaferideRoundTrip.style.display = "none";
        }

        if(isAirportRoundTrip)
        {
            divAirportRoundTrip.style.display = "none";
            divSaferideRoundTrip.style.display = "block";
        }

        if(isSafeRideRoundTrip)
        {
            divAirportRoundTrip.style.display = "none";
            divSaferideRoundTrip.style.display = "block";

        }

    }
-3
Scarnet 16 Дек 2015 в 22:06

3 ответа

Лучший ответ

Точка с запятой после оператора if завершает строку, удалите ее, и все будет в порядке.

if(selectedTripType == "Safe Ride - Round Trip"); <-- remove this semi colon
2
A.O. 16 Дек 2015 в 19:11
if(selectedTripType == "Safe Ride - Round Trip");

У вас есть ; здесь. Это так же, как:

if(selectedTripType == "Safe Ride - Round Trip"){}

Вы хотели сделать следующее:

if(selectedTripType == "Safe Ride - Round Trip"){
    isAirportRoundTrip = true;
}

(Вам просто нужно потерять ;. Я только добавил {} для ясности; хорошая идея всегда иметь их.)

1
Rocket Hazmat 16 Дек 2015 в 19:12

Это потому, что у вас есть точка с запятой после этой строки:

if(selectedTripType == "Safe Ride - Round Trip");

Он завершает оператор if и следующая строка всегда выполняется.

3
xersiee 16 Дек 2015 в 19:12