在IE中的onclick事件中,JS变量未定义

时间:2011-07-08 13:39:53

标签: javascript internet-explorer

我的页面上有一个小表单,用户可以在特定酒店搜索可用性,或在所有酒店搜索可用性:

<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来设置传递的HotelID。这在Firefox中运行良好。但是在IE中,每当我按下任一按钮时,我都会收到脚本错误,说'searchAll'未定义

我需要做些什么来解决这个问题?

1 个答案:

答案 0 :(得分:3)

您需要在searchAll函数之外声明Redirect变量,因此它位于全局范围内,因此可以从Redirect函数和您的内联事件处理程序访问:

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

    return true;
}