Переменная JS не определена в событии onclick в IE - PullRequest
0 голосов
/ 08 июля 2011

У меня есть небольшая форма на моей странице, где пользователь может либо искать доступность в определенном отеле, либо искать доступность во всех отелях:

<script type="text/javascript" language="javascript">
    function Redirect() {
        if (searchAll) {
            document.getElementById("Hotel").value = "0";
        }

        return true;
    }
</script>

<form name="form1" action="search.asp" method="POST" id="form1"
    onsubmit="return Redirect()">

    <input type="hidden" id="Hotel" name="Hotel" value="<%= HotelID %>">

    <input id="btnHotelSearch" type="submit" name="btnHotelSearch"
        value="Search This Hotel" onclick="searchAll=false">
    <input id="btnHotelSearchAll" type="submit" name="btnHotelSearchAll"
        value="Search All Hotels" onclick="searchAll=true">
</form>

При каждом нажатии кнопки я запускаю некоторыеJavaScript для установки передаваемого идентификатора отеля.Это отлично работает в Firefox.Но в IE всякий раз, когда я нажимаю любую кнопку, я получаю сообщение об ошибке сценария, в котором говорится, searchAll не определено

Что мне нужно сделать, чтобы это исправить?

1 Ответ

3 голосов
/ 08 июля 2011

Вам необходимо объявить переменную searchAll вне функции Redirect, чтобы она находилась в глобальной области видимости и поэтому была доступна из функции Redirect и ваших встроенных обработчиков событий:

var searchAll;
function Redirect() {
    if (searchAll) {
        document.getElementById("Hotel").value = "0";
    }

    return true;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...