J'ai un code JS dans lequel lorsque vous modifiez un champ, il appelle une routine de recherche. Le problème est que je ne trouve aucun événement jQuery qui se déclenche lorsque le Datepicker met à jour le champ de saisie.
Pour une raison quelconque, un événement de modification n'est pas appelé lorsque Datepicker met à jour le champ. Lorsque le calendrier apparaît, il change le focus, donc je ne peux pas l'utiliser non plus. Des idées?
jquery
datepicker
zbestzeus
la source
la source
Réponses:
Vous pouvez utiliser le datepicker
onSelect
événement .Exemple en direct :
Afficher l'extrait de code
Malheureusement, il se
onSelect
déclenche chaque fois qu'une date est sélectionnée, même si elle n'a pas changé. Il s'agit d'un défaut de conception dans le sélecteur de date: il se déclenche toujoursonSelect
(même si rien n'a changé) et ne déclenche aucun événement sur l'entrée sous-jacente au changement. (Si vous regardez dans le code de cet exemple, nous écoutons les changements, mais ils ne sont pas déclenchés.) Il devrait probablement déclencher un événement sur l'entrée lorsque les choses changent (éventuellement l'change
événement habituel , ou éventuellement un sélecteur de date) spécifique).Si vous le souhaitez, bien sûr, vous pouvez faire l'
change
événement sur leinput
feu:Cela se déclenchera
change
sur le sous-jacentinput
pour tout gestionnaire connecté via jQuery. Mais encore une fois, il le déclenche toujours . Si vous ne souhaitez tirer que sur un changement réel, vous devrez enregistrer la valeur précédente (éventuellement viadata
) et comparer.Exemple en direct :
Afficher l'extrait de code
la source
change
(s) gestionnaire (s)" et j'ai donc mis à jour la réponse avec cela. :-)La réponse de TJ Crowder ( https://stackoverflow.com/a/6471992/481154 ) est très bonne et reste toujours exacte. Déclencher l'événement change dans la fonction onSelect est aussi proche que possible.
Cependant, il existe une belle propriété sur l'objet datepicker (
lastVal
) qui vous permettra de déclencher conditionnellement l'événement de modification uniquement sur les modifications réelles sans avoir à stocker vous-même la ou les valeurs:Ensuite, gérez simplement les événements de changement comme d'habitude:
la source
lastVal
est cependant ;-)lastVal
n'existe pas sur l'objet datepicker, du moins dans mes tests. Cette solution déclenchera donc toujours le changement.Votre recherche de l' événement onSelect dans l'objet datepicker:
la source
J'ai écrit cela parce que j'avais besoin d'une solution pour déclencher un événement uniquement si la date changeait.
C'est une solution simple. Chaque fois que la boîte de dialogue se ferme, nous testons pour voir si les données ont changé. Si c'est le cas, nous déclenchons un événement personnalisé et réinitialisons la valeur stockée.
Nous pouvons maintenant connecter des gestionnaires pour cet événement personnalisé ...
la source
la source
J'utilise bootstrap-datepicker et aucune des solutions ci-dessus n'a fonctionné pour moi. Cette réponse m'a aidé ..
bootstrap datepicker change date event ne se déclenche pas lors de la modification manuelle des dates ou de la suppression de la date
Voici ce que j'ai appliqué:
J'espère que cela peut aider les autres.
la source
Sur jQueryUi 1.9, j'ai réussi à le faire fonctionner grâce à une valeur de données supplémentaire et une combinaison de fonctions beforeShow et onSelect:
Travaille pour moi :)
la source
Je sais que c'est une vieille question. Mais je n'ai pas pu obtenir l'événement jquery $ (this) .change () pour qu'il se déclenche correctement surSelect. J'ai donc opté pour l'approche suivante pour déclencher l'événement de changement via vanilla js.
la source
Essaye ça
J'espère que cela t'aides:)
la source
Essayez:
la source
Le manuel dit:
Alors:
Travaille pour moi.
la source
Mon soluthion:
la source
Ma solution est:
la source
Code d'événement de changement de valeur sélectionné par DatePicker ci-dessous
la source
si vous utilisez wdcalendar, cela va vous aider
l'événement onReturn fonctionne pour moi
j'espère que cette aide
la source
Je pense que votre problème peut résider dans la configuration de votre datepicker. Pourquoi ne déconnectez-vous pas l'entrée ... n'utilisez pas altField. Au lieu de cela, définissez explicitement les valeurs lorsque onSelect se déclenche. Cela vous donnera le contrôle de chaque interaction; le champ de texte utilisateur et le sélecteur de date.
Remarque: Parfois, vous devez appeler la routine sur .change () et non sur .onSelect () car onSelect peut être appelé sur différentes interactions auxquelles vous ne vous attendez pas.
Pseudo code:
la source