Question

J'ai un calendrier ASPX qui fonctionne bien dans IE, cependant, dans FF, la sélection de date ne répond pas.Lorsque je mets un point d'arrêt dans le code derrière (événement calActiveCal_SelectionChanged), l'application n'interfère pas avec cette fonction.La fonction n'est donc pas appelée.

Le code HTML est :

<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>  

Mise à jour:Lors du débogage dans Firebug, j'obtiens un message d'erreur :

window.opener.document.forms n'est pas une fonction

Quand je cherche window.opener.document.forms c'est dans le code C# derrière :

    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);    

La valeur strScript est (si l'utilisateur a sélectionné le 30/12/2011) :
<script>window.opener.document.forms(0).txtFrom.value = '12/30/2011';self.close()</script>

Avez-vous des idées sur la façon de faire fonctionner cela dans FF ?Malheureusement, jQuery n'est pas une option pour le moment.

Était-ce utile?

La solution 2

remplacer forms(0) avec forms[0]

Autres conseils

Peut-être rencontrez-vous des erreurs côté client (javascript) qui se produisent uniquement dans FF et qui empêchent même FF de publier la demande que vous attendez sur le serveur.Utilisez Firebug pour voir si quelque chose est signalé à la console d'erreurs.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top