Tak więc jeśli mamy taki kod:
function funx() { var x = document.getElementById('input'); x.value = 'nowa wartość'; }To wartość elementu #input owszem zostanie zmieniona, ale jego onchange już uruchomiony nie zostanie. Remedium? Wystarczy dodać jedną linijkę:
function funx() { var x = document.getElementById('input'); x.value = 'nowa wartość'; x.onchange(); }x.onchange() powoduje iż skrypt uruchamia kod podpięty pod eventa onchange.
I żeby nie było - taka budowa tego eventa jest bardzo rozsądna (ogranicza niepożądane rekurencje, upraszcza kod).
Polecam zamiast tego używanie jquerowego change()
OdpowiedzUsuńhttp://api.jquery.com/change/
Natomiast analogicznie do odpalania eventów służy trigger
http://api.jquery.com/trigger/
oczywiście można używać jQuery do wszystkiego i zwykle bardzo fajne rzeczy za jego pomocą wychodzą.. tyle, że nie zawsze jQuery chcemy/możemy używać :)
OdpowiedzUsuńa i ja jestem taki dziwak, że jakoś nie podchodzi mi cały ten jQuery ^^