Zdarzenie zmiany jest uruchamiane po zdarzeniu blur
na wejściu, innymi słowy, gdy wejście traci ostrość. Dokumentacja MDN opisuje następująco:
Gdy element traci fokus po jej wartość została zmieniona, ale nie zaangażowani (np po edycji wartości lub).
Od input
jest typu ukryte nigdy nie będzie żadnej interakcji użytkownika z input
co oznacza, że nie zmieni, chyba że skrypt po stronie klienta, dostarczane przez witryny zmienia go, który nie wywoła zdarzenie change.
Oto dwie opcje:
zmiana połączeń(), wyraźnie
Kiedykolwiek zmienić wartość ukrytej połączenia wejściowego .change()
wyzwolić zdarzenie.
$(document).ready(function(){
var $hello= $('[id$=myValue]');
$hello.on("change", function(){
alert('hey');
});
$hello.val("Something");
$hello.change();
});
Wystarczy zadzwonić kod bez obsługi
Zamiast obsługi zdarzeń tylko wykonać kod będzie trzeba w źródle.
$(document).ready(function(){
var $hello= $('[id$=myValue]');
$hello.val("Something");
alert('hey');
});
Kolejną rzeczą, o której chciałbym wspomnieć, jest to, że selektor może być trochę lepiej dopasowany.
var $hello= $('input[id$=myValue]');
A jeśli używasz nowej wersji jQuery wolą on
zamiast bind
jak pokazano w powyższym przykładzie.
Jak zmienić wartość wejściową? Używając programu val() programowo? –
Jaką wersję jquery używasz? –
Używam JQuery 1.8.3. Jest to aplikacja Java JSF, więc programowo. –