Avatar billede cmau Nybegynder
04. oktober 2006 - 10:13 Der 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]) {
Avatar billede olebole Juniormester
04. oktober 2006 - 10:29 #1
<ole>

- hvad gør den hele tiden?  =)

/mvh
</bole>
Avatar billede cmau Nybegynder
04. oktober 2006 - 10:53 #2
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-
Avatar billede olebole Juniormester
04. oktober 2006 - 10:56 #3
Prøv at vise noget mere kode ... og så kan dit select-element i øvrigt ikke hedde 'select'  =)
Avatar billede cmau Nybegynder
04. oktober 2006 - 10:58 #4
www.fuckingloveyou.com/ajax

Prøv at se der inde.
Avatar billede olebole Juniormester
04. oktober 2006 - 11:03 #5
Hvad er det? Kan du ikke vise en side, der indeholder relevant kode og relevante elementer?
Avatar billede cmau Nybegynder
04. oktober 2006 - 11:13 #6
Koden kan findes her

<SCRIPT type="text/javascript">
function getKey(e) {
    e = xEvnt(e);
    if (e.keyCode == 40) {
        document.getElementById('selectbox').focus();
        e.cancelBubble = true;
        e.preventDefault();
    }
    if (e.keyCode == 38 && document.forms['search'].selectbox.options[0]) {
        document.getElementById('keyword').focus();
        e.cancelBubble = true;
        e.preventDefault();
    }
}
document.onkeydown = getKey;
</SCRIPT>

<form name="search">
<p>Navn:<br><input type="text" id="keyword" onKeyUp="showHint(this.value);"></p>
<p>Søg i følgende medier:<br>
<input type="checkbox" name="dvd" id="dvd" checked onChange="showHint(document.getElementById('keyword').value);">DVD<br>
<input type="checkbox" name="ps2" id="ps2" checked onChange="showHint(document.getElementById('keyword').value);"> PS2<br>

<input type="checkbox" name="xbox" id="xbox" checked onChange="showHint(document.getElementById('keyword').value);"> XBOX<br>
<input type="button" name="selectall" onClick="showHint(document.getElementById('keyword').value);selectAll(this.form);" value="Vælg/Fravælg">

<select size="6" style="width:300px;" id="selectbox" name="selectbox"><option value="asd">øverste</option><option value="asd">asd</option></select>
</form>


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".
Avatar billede olebole Juniormester
04. oktober 2006 - 13:41 #7
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)
Avatar billede cmau Nybegynder
04. oktober 2006 - 20:55 #8
Ole jeg har skam fået xevnt fra dig, den ligger blot i flien http://www.fuckingloveyou.com/ajax/clienthint.js

Det ikke der problemet ligger :)
Avatar billede olebole Juniormester
05. oktober 2006 - 12:46 #9
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();
    }
}
Avatar billede cmau Nybegynder
05. oktober 2006 - 16:47 #10
Det virker bortset fra at den hopper over første resultat, hvordan kan det være?
Avatar billede cmau Nybegynder
06. oktober 2006 - 10:43 #11
document.getElementById('selectbox').selectedIndex += 1;
Ved at fjerne denne linje virkede det ;)
Avatar billede olebole Juniormester
09. oktober 2006 - 12:50 #12
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  =)
Avatar billede cmau Nybegynder
14. oktober 2006 - 11:57 #13
Hov nu kom jeg lige til at se siden i Internet Explorer og der virker pil ned ikke! Hvad kan jeg gører veddet?
Avatar billede cmau Nybegynder
31. oktober 2006 - 14:40 #14
Hjælp.
Avatar billede cmau Nybegynder
19. november 2006 - 13:20 #15
Hvad skal jeg gøre?
Avatar billede cmau Nybegynder
05. januar 2007 - 21:21 #16
nå smid svar, når du ikke vil svare på det sidste.
Avatar billede cmau Nybegynder
25. marts 2007 - 16:57 #17
.
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester