Form elemre hivatkozás JavaScriptből

gszoke képe

Sziasztok,

Webform modult használok, amihez a webform-form-{nid}.tpl.php -n keresztül kapcsoltam e js filet.

JavaScriptet használok, mert nem ismerem a jQuery-t.

A form elemeit szeretném kicsit variálni, erre kell a js.

Egy egyszerűbb kóddal próbálkoztam, hogy lássam egyáltalán működik e a dolog:

function mouseover() {
	alert ("KAtt");
}
var obj=document.getElementById("edit-submitted-mobil-telefon");
obj.onmouseover = mouseover;

erre azt mondja, hogy obj null. Ekkor megnéztem, hogy mi van ha kiiratom az obj-t, ekkor valóban null volt az értéke.

A kódot kipróbáltam egy egyszeű html.ben ott rendesen működött.

Arra gondolok, hogy a gond a

var obj=document.getElementById("edit-submitted-mobil-telefon");

részben van, talán nem jó használom az id-t? Ez az id egy form elemhez tartozik, amit Firebug-val kerestem ki.

Mi lehet a gond?

ELőre is köszönöm.

Üdv.:
Gábor

Drupal verzió: 
kismocsy képe

Hogyan adod hozzá a .js-t?
Nekem a drupallal csak úgy sikerült a .js-eimet futtatni ha a drupal_add_js() -t használtam.
http://api.drupal.org/api/function/drupal_add_js/6

A kódoddal ebből nemtudom, hogy mi lehet a gond, de ha form elemeinek elrendezését szeretnéd variálni, arra én a http://drupal.org/project/arrange_fields modullal meg voltam elégedve.

0
0
gszoke képe

biztos jó a js hozzáadása, mert a

document.write(obj);

ki tudom iratni, hogy mi az értéke (null ugyebár)

egyébként azt használom, amit írtál.

én is használom ezt a modult, de a végső célom az lenne, hogy (egyébként egy regisztrációs formot készítek, ahol több összetevőt lehet bejelölni, részösszegeket össze kell adni) bizonyos bejelölt form elemekhez tartozó összegeket valós időben összeadjak.

0
0
kismocsy képe

Akkor kéne menjen. Nekem egyszer volt olyan, hogy a " helyett valami ferde " -t írt amikor a szövegszerkeszőből átraktam a végelges heylére és azzal nem volt jó.

Közben találtam egy ilyet:
http://snipplr.com/view/6487/list-all-ids-in-the-dom-tree/
De nem próbáltam ki.

Más ötletem nincs most...

0
0
gszoke képe

ezzel a résszel van a gond tutira, mert azt írja, hogy

"document.body is null" biztos, hogy nem jól hivatkozok az oldal elemeire, de egyszerűen sehol nem találok leírást hozzá

0
0
kismocsy képe

Böngészőhibára gondoltál?
Az előbb linkeltem egy kódrészletet ami elvileg az ids változóba bepakolja az összes ID-t amit a .js lát. Ha nincs olyan ID akkor nem látja a .js. Ebben az esetben azt kell kitalálni, hogy miért nem látja.

Valahol olvastam hogy IE7 valamelyik verziójában kétszer kellet egymás után meghívni a getElementById()-t hogy másodszorra ne nullt adjon. Nemtudom igaz-e.

0
0
gszoke képe

erre a kódra írta kil a hibát, amit az előbb írtam, tehát szinte biztos, hogy a hivatkozás a gond

0
0
kismocsy képe

Itt azt írják (többek között), hogy a page.tpl.php ben a /body után semmiylen html tag nem lehet.
http://stackoverflow.com/questions/1630969/why-is-document-body-null-in-...

Ugyanitt írja egy póruljárt ember, hogy ezt a sort betette a $(document).ready(function(){}); aljára:
if(null==document.body){document.body = $('body')[0];}
És ettől megjavult. Ezt modnjuk nem értem...

0
0
kismocsy képe

Az is lehet, hogy a webform-form-{nid}.tpl.php hamarabb lefut mint ahogy a dokumnentumnak lesz body -ja, és ezért nem megy.
BTW nekem soha nem jutott még az eszembe a tpl-be tenni .js-t.

Esetleg megpróbálhatnád a footerbe tenni, hátha az a baj, hogy a headerbe nem szeret.

Megpróbálhatnád http://drupal.org/project/js_injector -al is, mert ha úgy jó, akkor tudjuk hogy valami az eddigi .js betöltés miatt nem jó.

0
0
gszoke képe

igen ez már nekem is eszembe jutott, de mégis azt mondja a leírás, hogy ha webformhoz így kell js-t csatolni, mindenesetre megpróbálom, köszi az infókat

0
0