IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Affichage d'un calendrier


Sujet :

JavaScript

  1. #1
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Points : 12 462
    Points
    12 462
    Par défaut Affichage d'un calendrier


    J'ai un petit soucis dans un projet sur lequel je travaille actuellement. J'ai un gros programme en ASP.Net (entre autre, y'a aussi du VB.Net, du C# et du javascript), certaines fenêtres sont pourvues de bouton pour afficher un calendrier pour choisir une date. J'ai la même chose dans une boîte de dialogue pour saisir des valeurs et une date, ça fonctionne mais par contre, dans les autres pages ces même boutons ne font rien et en mode Debug, j'ai ceci qui s'affiche:
    Erreur d'exécution Microsoft JScript: 'type' a la valeur Null ou n'est pas un objet.
    Code du bouton et de la TextBox:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    <script type="text/javascript" language="JavaScript" id="c1">
                var calP1 = new CalendarPopup();
                calP1.showNavigationDropdowns();
                calP1.setCssPrefix("TEST");
                calP1.setMonthNames("Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre");
                calP1.setDayHeaders("D", "L", "M", "M", "J", "V", "S");
                calP1.setWeekStartDay(1);
                calP1.setTodayText("Aujourd'hui");
            </script>
    ...
    <asp:TextBox ID="txtDte" runat="server" MaxLength="10"></asp:TextBox>
                <a id="aCalP1"
                    onclick="calP1.select(document.forms[0].txtDte,'aCalP1','dd/MM/yyyy'); return false;"
                    href="#" name="aCalP1"><asp:ImageButton ID="btnCal" runat="server" 
                    CssClass="ib" ImageUrl="~/IMAGES/calendar.gif"
                    ToolTip="Ouvrir le calendrier" Height="20px" Width="22px" 
                    ImageAlign="AbsBottom" />
                </a>
    La fonction dans laquelle l'erreur m'est remontée:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    // Simple method to interface popup calendar with a text-entry box
    function CP_select(inputobj, linkname, format) {
    	var selectedDate=(arguments.length>3)?arguments[3]:null;
    	if (!window.getDateFromFormat) {
    		alert("calendar.select: To use this method you must also include 'date.js' for date formatting");
    		return;
    		}
    	if (this.displayType!="date"&&this.displayType!="week-end") {
    		alert("calendar.select: This function can only be used with displayType 'date' or 'week-end'");
    		return;
    		}
    	if (inputobj.type!="text" && inputobj.type!="hidden" && inputobj.type!="textarea") { 
    		alert("calendar.select: Input object passed is not a valid form input object"); 
    		window.CP_targetInput=null;
    		return;
    		}
    	if (inputobj.disabled) { return; } // Can't use calendar input on disabled form input!
    	window.CP_targetInput = inputobj;
    	window.CP_calendarObject = this;
    	this.currentDate=null;
    	var time=0;
    	if (selectedDate!=null) {
    		time = getDateFromFormat(selectedDate,format)
    		}
    	else if (inputobj.value!="") {
    		time = getDateFromFormat(inputobj.value,format);
    		}
    	if (selectedDate!=null || inputobj.value!="") {
    		if (time==0) { this.currentDate=null; }
    		else { this.currentDate=new Date(time); }
    		}
    	window.CP_dateFormat = format;
    	this.showCalendar(linkname);
    	}
    En rouge c'est le test qui me fait tout foirer. La source du code pour le calendrier est issu de ce site http://www.mattkruse.com/javascript/calendarpopup/

    Si jamais quelqu'un a une solution à me proposer je suis preneur



  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    Erreur d'exécution Microsoft JScript:
    JScript != javascript

  3. #3
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Points : 12 462
    Points
    12 462
    Par défaut
    J'avoue, je ne suis pas un pro de ce langage donc moi je ne fait pas spécialement la différence. Un modérateur n'a qu'a déplacer mon message s'il n'est pas à sa place ici

  4. #4
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Microsoft continue à certains endroits d'appeler Javascript JScript, notamment dans quelques vieilles versions d'Internet Explorer. Même s'ils ont depuis longtemps reviré vers le standard, ils s'accrochent de manière incompréhensible à ce pan de leur passé pourtant peu glorieux.

    Les messages d'erreur dans la console d'IE ne sont pas réputés pour être très clairs. Même si type vaut null, il n'y a pas de raison que ton test soulève une exception. Essaie quand même cette modification :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if (inputobj == null || (inputobj.type!="text" && inputobj.type!="hidden" && inputobj.type!="textarea")){ 
     alert("calendar.select: Input object passed is not a valid form input object"); 
     window.CP_targetInput=null;
     return;
    }

Discussions similaires

  1. prob d'affichage d'un calendrier
    Par zaineb.z dans le forum Struts 1
    Réponses: 6
    Dernier message: 27/07/2007, 23h22
  2. prob d'affichage d'un calendrier
    Par zaineb.z dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 25/07/2007, 15h14
  3. Affichage d'un calendrier
    Par franckywood dans le forum Pascal
    Réponses: 3
    Dernier message: 06/07/2007, 19h45
  4. [debutant] Affichage d'un calendrier
    Par Ashgenesis dans le forum C
    Réponses: 16
    Dernier message: 01/03/2007, 18h29
  5. [Mozilla] Problème d'affichage d'un calendrier
    Par nais_ dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 07/09/2006, 10h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo