23. september 2004 - 10:14Der er
1 kommentar og 1 løsning
Test om felt er synligt
Hvordan tester man om et felt er synligt på skærmen?
Jeg har et inputfelt, der ligger inde i et DIV tag. DIV-tag'et kan jeg lave expand/collapse på med style.display:block/none.
Jeg vil gerne ha' mulighed for at sætte focus i inputfeltet. Hvis DIV-tag'et er collapsed, skal det expandes først, da man ellers får en scriptfejl.
I IE kan jeg lave try { document.forms[0].inputfelt.focus(); } catch (e){ expand('DIV-tag'); document.forms[0].inputfelt.focus(); } men det virker ikke i Mozilla, da man ikke får en scriptfejl, hvis man sætter fokus på et felt der ikke kan ses.
Jeg kan heller ikke altid expande DIV-tag'et, da jeg har mange, og ikke ved hvilket det er, der skal expandes.
Efter ti år i London, Madrid, Paris og Utrecht kommer Sabios AI-fokuserede program af arrangementer om kundeoplevelser, ‘Disrupt’, for første gang til Danmark.
Navnet på inputfeltet får jeg fra en mainframe, som jeg snakker med. Jeg kunne selvfølgelig teste på feltnavnet, og så expande ud fra det, men jeg vil gerne gøre koden så generel som muligt.
Jeg har løst problemet på flg. måde function setFokus(fejlfelt) { //Hent fejlende objekt obj = document.getElementById(fejlfelt); //Hop op gennem DOM træet indtil BODY-tag findes while(obj.parentNode.nodeName != 'BODY') { if(obj.parentNode.style.display == 'none') { obj.parentNode.style.display = 'block'; } obj = obj.parentNode; } document.forms[0][fejlfelt].focus(); }
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.