Éviter de rouvrir datepicker après avoir sélectionner une date
Seulement dans IE avec ce code
$('#datepicker').datepicker({
onSelect : function(x, u){
$(this).focus();
}
});
lorsque je sélectionne une date, le datepicker rouvrir lui-même parce que j'ai ajouté $(this).focus();
dans onSelect
. Comment je peux résoudre ce problème? (Exemple)
Je suis en utilisant jquery 1.8.2 et jquery-ui 1.9
- ce lien peut aider forum.jquery.com/topic/...
- est-ce si important pour définir le focus après la sélection? Il y a de nombreux événements à puiser dans datepicker de l'API. Ma conjecture est que jQuery UI équipe a retiré l'accent, c'est à dire pour la même raison
- Oui, C'est important
- ne pas comprendre comment ce lien pourrait résoudre mon problème 🙁
Vous devez vous connecter pour publier un commentaire.
C'est la meilleure solution je peux obtenir:
(inspiré de ce lien)
jsFiddle
Veuillez noter que vous suggérez dans votre question, la messagerie instantanée à l'aide de jquery-UI 1.9.0. Dans votre exemple, vous avez été à l'aide de jquery-ui 1.8.15 qui est connu pour être buggé sur certains événements (e.g beforeShow() sur IE).
return undefined;
)onSelect
gestionnaire. N'ont pas compris pourquoi cela fonctionne, mais ça fonctionne pour moi jusqu'à présent (YMMV).Je suis tombé sur cette question aujourd'hui et avait une autre solution pour moi. Mon scénario était que mon DatePicker était à l'intérieur d'un jQuery UI boîte de Dialogue contextuelle. Tout a bien fonctionné dans Chrome, mais sous IE, le calendrier serait toujours réapparaître après la sélection d'une date.
Comme il s'avère, il y a un bug dans jQuery 1.10.1: http://bugs.jqueryui.com/ticket/9125
Il y a aussi un JSFiddle liée à celle démontre le bug sous IE. Il y a deux façons d'obtenir que cela fonctionne sous IE:
modal
àfalse
Je suis allé avec #2, et ici est un exemple de la fix (juste la mise à jour de la JSFiddle code):
Balisage:
JS:
J'espère que cela aide quelqu'un dans le futur!
- Je l'utiliser pour IE, il arrête le datepicker de la ré-ouverture trop
JQuery:
HTML (première ligne de la boîte de dialogue div):
Depuis
.browser
est retiré après jQuery 1.9, j'ai dû légèrement modifier le code. Cela fonctionne pour moi:navigator.appName
avec google Chrome/Safari/Firefox apparemment. Plutôt que de rechercher à la fois les valeurs que j'ai supprimé la condition, tous ensemble et n'ai pas remarqué de différence dans le non-IE navigateurs. Quelqu'un peut-il penser à une raison pour conserver le conditionnel (if (navigator.appName == 'Microsoft Internet Explorer') {
)?Essayez ceci:
voici le violon http://jsfiddle.net/VZts7/69/
Ou pour IE8:
même si ce n'est pas une solution parfaite, voir le travail de violon http://jsfiddle.net/hv77F/2/
Solution pour jQuery > 1.9 dans IE <= 9
Necromancing.
J'ai eu le même problème, sauf aucune des réponses mentionnées ici travaillé.
Il est peut-être parce que le code que j'ai à travailler sur des œuvres avec des iframe, mais je n'ai pas maintenant pour vous.
Sur le dessus, je ne pouvais pas mettre à jour vers la dernière version, car elle permettrait de casser la compatibilité avec le reste du projet, j'ai eu à travailler sur.
C'est ce qu'il est corrigé pour moi: