23. september 2004 - 10:14
Der 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.
23. september 2004 - 12:37
#1
Hvordan ved du så, at det er det bestemte input-felt (der må være en sammenhæng mellem den handling, som udløser fokus og input-feltet !-)
23. september 2004 - 13:39
#2
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();
}