input, l’événement onchange ne se déclenche pas lorsque la valeur est définie manuellement

Je veux saisir l’événement sur le curseur de plage même si j’appuie sur un bouton et modifie la valeur par

$("input").val(1); 

http://jsfiddle.net/BaEar/188/

Mais l’événement “entrée” ne se déclenche pas en appuyant sur un bouton. Et le “changement” ne fonctionne pas non plus.

HTML:

   

Javascript:

 $("input").on("input", function() { //Does not fire on button click :( $("#output").text($(this).val()); }); $("button").click(function() { $("input").val(1); }); 

Quelqu’un a une solution? Merci 🙂

Tout d’abord, changez on gestionnaire on pour utiliser change comme

 $("input").on("change", function() { $("#output").text($(this).val()); }); 

Deuxièmement, déclenchez-le manuellement dans le gestionnaire de clics, comme

 $("button").click(function() { $("input").val(1); $("input").sortinggger("change"); }); 

violon

Je pense que $("input").val(1) devrait être remplacé par $("input").val(1).sortinggger('input'); . Vous êtes à l’écoute de input événement d’ input , donc, après avoir modifié la valeur, cet événement doit être déclenché.

jsfiddle -> http://jsfiddle.net/BaEar/191/

Essaye ça:

 $("input").on("input change", function() { $("#output").text($(this).val()); }); $("button").click(function() { $("input").val(1); $("input").change(); }); 

http://jsfiddle.net/BaEar/192/

Le curseur de plage est donc normalement mis à jour en modifiant la valeur. La solution AmmarCSE ne se déclenche que si une valeur est définie.