A Drupal 7 states és a checkbox click esemény

hosszu.kalman képe

Két napi önostorozás után jöttem rá erre a kis furfangra a states-szel kapsolatban, úgyhogy lehet néhány fejlesztő kollégámnak hasznos lehet.

Az történt, hogy a Drupal 7-be beépített states-et használtam arra, hogy a form bizonyos elemei megjelenjenjenek és bizonyos mezők kötelezőek legyenek különböző checkbox-ok állásától függően. Ez eddig rendben is volt, erre való a states. Aztán ezeket a checkbox-okat el kellett rejteni és más elemek eseményeinél kellett szimulálni a checkbox-ok bekapcsolását.
Ekkor az egész összeomolott. Olyan volt mintha nem csináltam volna semmit, aminek meg kellett jelennie nem jelent meg, aminek kötelezőnek kellett volna lenni az nem volt az. Próbálkoztam mindennel, click eseményt futtattam, checked attribútumut változtattam, states event-et triggereltem, behavior-t attach-eltem stb...de semmi. Végül ma reggel végre sikerült megoldani a problémát, mégpedig egy aprócska kiegészítővel: a click eseményen kívül a change eseményt is triggerelni kellett:

$(myElement).click().trigger('change');