La sélection de la date du calendrier asp.net ne répond pas dans Firefox
-
14-11-2019 - |
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.
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.