04. oktober 2006 - 10:13Der er
16 kommentarer og 1 løsning
Javascript driller
hejsa
Jeg har lavet en funktion, som når jeg er i et text felt og trykker pil ned skiftes focus til en select boks. Vil så gerne have at hvis man er i øverste felt af en slecet boks skal der ske noget, men den gør det hele tiden:
if (e.keyCode == 38 && document.forms['search'].select.options[1]) {
Altså når man trykker pil op skifter den focus til text boksen lige meget hvad, det skal være sådan at den er i det øverste optionsfelt, før den kan skifte focus-
Hvis altså focus er i option med teksten "øverste" og man trykker pil op skal focus skifte til boksen keyword, men hvis focus er i option med teksten "asd" og man trykker pil op skal den skifte til option med teksten "øverste".
Du mangler i hvertfald funktionen 'xEvnt'. Mon ikke, du har kopieret noget fra et af mine gamle eksempler (synes, jeg husker noget med en funktion ved det navn)? Prøv at se, om ikke du kan finde funktionen der, hvor du oprindelig kopierede koden ;o)
Tak, det var bare, så jeg selv kunne teste - og jeg har ikke scriptet på denne maskine (og har ikke ubegrænset af tid her) ;o) Mon ikke, det er noget i denne retning, du søger:
function getKey(e) { e = xEvnt(e); if (e.keyCode == 40) { document.getElementById('selectbox').selectedIndex += 1; document.getElementById('selectbox').focus(); e.cancelBubble = true; e.preventDefault(); } if (e.keyCode == 38 && document.forms['search'].selectbox.selectedIndex==0) { document.forms['search'].selectbox.selectedIndex = -1; // Kan evt. slettes. Fravælger evt. valgt option document.getElementById('keyword').focus(); e.cancelBubble = true; e.preventDefault(); } }
Hmmm ... her virker det fint med den linje. En select har et selectedIndex på -1, sålænge der ikke er valgt en option ... så det burde også virke fint =)
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.