Üdv Mindenkinek!
Kérném a segítségetek:
Szeretnék számolni a webform (6.x-3.18) egyik mezőjében. Egy szerződés kitöltését a webform-al oldottam meg és van egy mező melynek kitöltésével szeretném, másik három mező értékét kiszámolni.
Az igazán jó megoldás az lenne, ha valahogy az aktuális euró árfolyamot is bele tudnám építeni a számításokba, de ezt akár kézzel is felvihetem.
Már két napja kutatok a megoldás után itt is és a drupal.org-on is, de vagy rossz szavakkal kerestem, vagy ez egy egyszerű probléma, aminek még nem ismerem a megoldását.
Ha tudtok kérlek segítsetek!
Üdv!
OSI
U.i.: drupal verzió: 6.26
Melyik modulhoz, modulokhoz kapcsolódik a téma?:
Drupal verzió:
Fórum:
jqueryvel?
Én egy efféle jquery megközelítéssel próbálkoznék először. A
.live('change')
textfield esetében akkor kerül meghívásra, ha a user beleír valamit a textfieldbe (tehát a fenti függvényben kiszámolt adat beírást követően azonnal feltűnik a szükséges mezőkben, illetve ha módosítja a felhasználó a kiinduló értéket, akkor újraírja a másik textfieldeket is).Nem próbáltam élesben pont ezt (drupalon még hasonlót sem), csak esélyesnek érzem.
Arra figyelned kell, hogy a D6 éppen milyen verziójú jqueryt használ, mert a .live() helyett régen volt más, ma meg megint van inkább más:
http://api.jquery.com/live/
Másik fontos kérdés: nem pontosan ismerem a drupal form validálási eljárásait, remélem ez nincs konfliktusban azzal (elvileg miért is lenne). Meg kell próbálni :)
UPDATE:
Sima .change() még jobbnak tűnik:
http://api.jquery.com/change/
UPDATE2:
Működő demo a jsfiddle.net-en. van még mit finomítani (pl. form validálás hogy csak számot fogadjon el kiindulásnak), de az elv látható.
Abban én is kérnék segítséget, hogy hogy lehetne elérni, hogy elkattintani se kelljen a mezőből, hanem eleve a beírást követően (továbbra is a mezőben állva) meghívódjon a callback?
tetszik ez a móka
A továbbgondolt megoldás kulcsát a bindWithDelay jquery plugin jelentette, amit ezúttal csak beledobtam a .js elejére, gondolom szebben is lehet.
A kérdés, hogy a D6 milyen verziójú jQueryt használ, milyen libek backward-kompatibilisek hozzá.
Mindenesetre ha modernebb megoldások vannak csak kéznél, akkor elvileg lehet puhatolózni a jQuery multi modullal, gondolom (csak óvatosan, legyen előtte mentés).
Ez az egy lépcsővel alaposabban kimódolt megoldás mindenesetre 1.7.2.-es jQuery-vel megy:
http://jsfiddle.net/DaYqn/9/
Productionba biztos nem ajánlanám még (főleg mert jquervel még "I have no idea what I'm doing"), de ötletadó mintának elmegy :D
Ez nekem is tetszik
Köszönöm a segítséget ... nem gondoltam, hogy ilyen megoldás fog érkezni rá, de nagyon tetszik!
Megnézem milyen jQuery van most a drupal-ba, de ha más nem berakom és lássuk mi lesz. :)
Írok hogy sikerült.