2010-04-22 4 views
3

J'utilise le contrôle datepicker de jQuery-ui 1.8. from-date est une entrée de texte. Je joins une datepicker très simple:jQuery datepicker provoque le débordement de page

$('#from-date').datepicker(); 

Cela provoque la page à débordement (barre de défilement verticale), que je suis en train d'éviter. Dès que je clique sur la date de début, le contrôle datepicker apparaît et la barre de défilement disparaît. Après avoir ignoré le calendrier, la barre de défilement n'apparaît plus.

Le champ de texte est à l'intérieur d'un div qui a un débordement: automatique et une hauteur et une largeur fixes. Je soupçonne que c'est un problème d'indice z.

Qu'est-ce que je fais mal? Comment pourrais-je déboguer cela?

+0

Que diriez-vous en utilisant $ ("corps") css ("overflow", "caché"); pour empêcher le défilement de la page, si vous ne voulez jamais qu'elle défile? Aussi, avez-vous testé sur plusieurs navigateurs? – Adam

+0

En fin de compte, je vais mettre le débordement à caché pour le corps entier, mais je voudrais le faire comme une sécurité intégrée. D'abord, j'ai besoin de savoir pourquoi cela se passe. EDIT: Cela se produit dans firefox 3.6.3, iexplore 8, opéra 10.50 – nc3b

+0

Peut-être que ce serait plus facile d'aider si vous fournissiez la page? – SamB

Répondre

5

J'avais exactement le même problème. Emballage Datepicker dans une nouvelle div avec une position fixe après que le document est prêt a fonctionné pour moi.

$(document).ready(function() { 
    // ... 
    $("#ui-datepicker-div").wrap('<div style="position:absolute;top:0px;"></div>'); 
} 
+0

Super! Cela a fonctionné pour moi. J'utilisais un formulaire de saisie de données dans un DIV de défilement. Lorsque vous faites défiler vers le bas et que vous ouvrez le sélecteur de date, le div défile jusqu'à la position d'origine. La solution ci-dessus a résolu le problème. – Dimuthu