4

我有一个在 IE 中运行良好的 aspx 日历,但是在 FF 中,日期选择没有响应。当我在后面的代码中放置断点(calActiveCal_SelectionChanged 事件)时,应用程序不会中断该函数。所以这个函数没有被调用。

HTML 代码是:

<td align="center" bgcolor="#ffffff" height="19">
    <asp:Calendar ID="calActiveCal" runat="server" BackColor="White" BorderColor="Silver"
        BorderStyle="Solid" CellPadding="1" CssClass="Calendar" ShowGridLines="True" OnSelectionChanged="calActiveCal_SelectionChanged">
        <TodayDayStyle CssClass="CalToday" />
        <SelectorStyle BackColor="#C0C0FF" CssClass="CalHRef" />
        <DayStyle CssClass="CalDate" />
        <NextPrevStyle CssClass="CalNavMonth" />
        <DayHeaderStyle CssClass="CalDayHead" />
        <SelectedDayStyle BackColor="Blue" CssClass="CalSelDay" />
        <TitleStyle BackColor="#C0C0FF" CssClass="CalMonthHead" />
        <WeekendDayStyle CssClass="CalWeekend" />
    </asp:Calendar>
</td>  

更新: 在 Firebug 中调试时,我收到一条错误消息:

window.opener.document.forms 不是函数

window.opener.document.forms当我在后面的 C# 代码中 搜索它时:

    string control = "txtDate";
    if (this.calActiveCal.SelectedDate > DateTime.Now && !this.ShowFutureDates)
    {
        this.calActiveCal.SelectedDate = DateTime.Now;
    }

    if (Request.QueryString.Get("c") != null)
    {
        string setting = Request.QueryString.Get("c");
        if (!setting.Equals(String.Empty))
        {
            control = setting;
        }
    }
    string strScript = "<script>window.opener.document.forms(0)." + control + ".value = '";
    strScript += calActiveCal.SelectedDate.ToString("MM/dd/yyyy");
    strScript += "';self.close()";
    strScript += "</" + "script>";
    Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "Calendar_ChangeDate", strScript);    

strScript 值为(如果用户选择 2011 年 12 月 30 日):
<script>window.opener.document.forms(0).txtFrom.value = '12/30/2011';self.close()</script>

任何想法如何让它在 FF 中工作?不幸的是,jQuery 目前不是一个选择。

4

2 回答 2

3

也许您遇到了仅在 FF 中发生的客户端(javascript)错误,并且阻止 FF 甚至无法将您期望的请求发布到服务器。使用 Firebug 查看是否有任何内容报告到错误控制台。

于 2012-01-26T22:17:54.710 回答
3

替换forms(0)forms[0]

于 2012-01-27T15:40:26.303 回答