Bonjour à tous.

J'ai intégré un DatePicker inline sur 2 pages web. Sur la première, le but est d'ouvrir une fenêtre ThickBox lors d'un clic sur une date. Sur la seconde, il fait partie d'un formulaire de recherche.

Le site n'est pas en ligne : c'est un intranet.

J'utilise les dernières versions (jQuery et UI) disponibles sur le site officiel.

Sur Firefox et chrome, tout se passe sans aucun problème. Sur IE8, lors d'un clic sur une date, le DP disparait et j'ai le message d'erreur suivant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
'length' a la valeur Null ou n'est pas un objet.
jquery-ui.js
Ligne 507 - Caractère 364
Voici les 2 parties JavaScript incriminées :

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
35
36
37
<script src="js/jquery.js" type="text/javascript"></script>
        <script src="js/jquery-ui.js"></script>
        <script src="js/jquery.ui.datepicker-fr.js"></script>
		<script src="js/jquery-Thickbox.js" type="text/javascript"></script>
        <script src="js/jquery-SlideShow.js" type="text/javascript"></script>
		<script src="js/jquery-Flashembed.js" type="text/javascript"></script>
 
		<script type="text/javascript">
			$(document).ready(function() {
				var dateList = new Array();
 
				<?php
                                        $query = "SELECT DEBUT FROM agenda WHERE DEBUT >= '$date'";
                                        $result = mysql_query($query);
                                
                                        while($field = mysql_fetch_array($result)) {
                                                if(substr($field[DEBUT], 4, 2) == $m) {
                                                        echo 'dateList.push("'.$field[DEBUT].'");';
                                                }
                                        }
                                ?>
 
				$(function() {
					$("#datepicker").datepicker({
						dateFormat: 'yymmdd',
						minDate: '0',
						maxDate: '+<?php echo $jours; ?>',
						hideIfNoPrevNext: true,
						beforeShowDay: function(dateToShow){
							return [($.inArray($.datepicker.formatDate('yymmdd', dateToShow), dateList) >= 0), ""];
						}
					});
				});
 
				flashembed("logo", {src: "flash/logo.swf", wmode: 'opaque'});
			});
		</script>
et :

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">
			$(document).ready(function() {
				$(function() {
					$("#datepicker").datepicker({
						dateFormat: 'yymmdd',
						minDate: '0',
						maxDate: '+1Y',
						onSelect: function(dateText, inst) {
							document.getElementById('post_date_reunion').value = dateText;
						}
					});
 
					<?php if($datum != '') echo "$('#datepicker').datepicker('setDate', new Date(".$y.", ".$m.", ".$d."));"; ?>
 
				});
 
				flashembed("logo", {src: "flash/logo.swf", wmode: 'opaque'});
		</script>
Les DP sont en <div> (inline)

Le premier script n'implémente pas encore le onSelect car c'est lors de son écriture que j'ai découvert le problème. Le second a été écrit hier et je n'avais pas encore réalisé les tests sur les différents navigateurs.

Merci d'avance pour l'aide que vous pourriez m'apporter. De mon côté, je continue de chercher.