J'ai trouvé une anomalie étrange avec des boîtes texte HTML et JavaScript que je me suis réduit pour être une particularité HTML / JavaScript et j'espère que quelqu'un peut m'éduir.
J'ai téléchargé et mis en œuvre une prise de calendrier en cela crée une couche simple avec un calendrier et sur la sélection, repasse la date sélectionnée dans la zone de texte. p>
Ce que je veux faire est de voir lorsque la zone de texte change (à l'aide de OnCHANGE), puis appelle une Fonction AJAX Pour mettre à jour la base de données ... p>
Le problème est, onchange n'appelle jamais appelé ... J'ai été capable de le prouver avec ce code très simple ci-dessous ... lorsque le bouton est cliqué dessus. La valeur qui devrait alors déclencher l'ondange et afficher une boîte d'alerte ... p> est cette norme? Y a-t-il une solution de contournement? P> p>
6 Réponses :
Pourquoi ne créez-vous pas une fonction personnalisée, comme ceci:
function change( val ){ var el = document.getElementById( 'textinput' ); el.value = val; alert( val ); }
L'événement OnChange n'est pas déclenché par un changement programmatique de la valeur du TextInput. Vous devez appeler le code que vous souhaitez exécuter après avoir changé la valeur vous-même. P>
Onchange ne s'appelle pas tant que le champ perd la mise au point / un autre champ d'édition devient FOCUS. P>
Votre meilleur pari consiste à mettre votre code pour manipuler la modification d'une fonction (dire, html: p> javascript: p> < PRE> XXX PRE> handletextChange code>), puis appelez cette fonction em> em> à partir de la modification
code> gestionnaire d'événements et em> lorsque vous modifiez directement votre code dans votre code.
Onchange code>, pas
Onchange code>. En HTML, peu importe; Dans XHTML, cela compte, et la propriété réfléchie sur l'élément est toujours em> toutes les minuscules, donc ... et il est plus facile de taper. : -) li>
L'événement OnChange sur les éléments de texte et les éléments textarea ne tire que lorsque l'élément perd la mise au point et si sa valeur est maintenant autre que sa valeur lorsqu'elle a été mise au point. P>
C'est un très vieux fil et la réponse peut être trouvée ailleurs, mais je pensais que je le posterais ici depuis que je l'ai trouvé à travers mes recherches.
L'appel d'ONCHANGE pour un élément peut être invoqué de manière programmatique de quelques façons. : p> ou p>
@Ghommey: Mon deuxième commentaire sur votre réponse désormais supprimée était incorrecte. Juste FYI.
Dupliqué possible de événement d'entrée Onchanange n'est pas tiré sur jQuery
Est-ce que cela répond à votre question? val () ne déclenche pas le changement () dans JQuery