le problème auquel je suis confronté est le suivant:
J'aimerais idéalement pouvoir ajouter l'événement en tant qu'attribut à la zone de texte, par exemple:
txtCreateDate.Attributes.Add("onchange", string.Format("JSfunction({0},'{1}');", arg1, arg2));
plus d'infos: La date est entrée dans la zone de texte en c #. Le contrôle de calendrier a un gestionnaire d'événements sur la page. Lorsqu'une date est sélectionnée, le gestionnaire d'événements insère la date dans la zone de texte. J'ai essayé de définir le focus sur la zone de texte à ce stade, puis de placer un attribut onBlur sur la zone de texte, mais la zone de texte ne semble jamais avoir le focus.
Je suppose que je pourrais directement appeler la fonction javascript en faisant ClientScript.RegisterClientScriptBlock ou quelque chose du genre, mais cela semble négligé et ne fonctionne jamais comme je le voulais.
Vous interprétez mal ce que l'événement onchange fait lorsqu'il est appliqué à une zone de texte. Il ne se déclenchera pas tant qu'il n'aura pas perdu la concentration ou que vous n'aurez appuyé que sur Entrée. Pourquoi ne pas activer la fonction à partir d’un échange sur la sélection qui remplit la zone de texte?
Consultez ici pour plus d'informations sur l'événement onchange: w3schools
C'est une vieille question, et je ne sais pas si cela va aider, mais j'ai pu programmer par programme un événement en utilisant:
if (document.createEvent && ctrl.dispatchEvent) {
var evt = document.createEvent("HTMLEvents");
evt.initEvent("change", true, true);
ctrl.dispatchEvent(evt); // for DOM-compliant browsers
} else if (ctrl.fireEvent) {
ctrl.fireEvent("onchange"); // for IE
}
Vous pouvez déclencher l'événement simplement avec
document.getElementById ("elementID"). onchange ();
Je ne sais pas si cela ne fonctionne pas sur certains navigateurs, mais cela devrait fonctionner sur FF 3 et IE 7+
Onchange
n'est déclenché que lorsque l'utilisateur entre quelque chose au clavier. Un possible solution de contournement pourrait être de focaliser d'abord le champ de texte puis de le changer.
Mais pourquoi ne pas récupérer l'événement lorsque l'utilisateur clique sur une date? Il doit déjà y avoir du javascript.
Votre population est du côté du serveur. L'utilisation de registerclientscript mettra le script au début du formulaire. Vous souhaiterez utiliser RegisterStartupScript (Block) pour que le script soit placé à la fin de la page en question.
Le premier essaie d'exécuter le script avant que la zone de texte n'existe dans le dom, le second l'exécutera après la création de cet élément de la page.
Vous pouvez essayer la bibliothèque Anthem .
Vous pouvez le placer dans une classe différente, puis appeler une fonction. Cela fonctionne quand ajax refresh
$(document).on("change", ".inputQty", function(e) {
//Call a function(input,input);
});