Avatar billede d.kryger Praktikant
20. februar 2006 - 09:58 Der er 20 kommentarer og
1 løsning

Skrive klubnavn automatisk ved angivelse af klubnr

Hej eksperter.

Kan nogen hjælpe med en kode hvor jeg kan indtaste et klubnr. og så skriver den selv klubnavnet i et felt nedenunder?
Avatar billede stephanryer Nybegynder
20. februar 2006 - 11:49 #1
<html>
<script>
    var liste = new Array();
    liste.push(new Par(1,"AJAX"));
    liste.push(new Par(2,"Real Madrid"));
    liste.push(new Par(3,"Manchester United"));
    liste.push(new Par(100,"Chelsea"));
    function Par(nr, navn){
        this.nr = nr;
        this.navn = navn;
    }
    function findKlubNavn(){
        var i = 0;
        var fundet = false;
        var nummer = nummerTxt.value;
        while(i < liste.length && fundet == false){
            var par = liste[i];
            if(par.nr == nummer){
                fundet = true;
                tekstFelt.innerHTML = "Fundet klubnavn: "+par.navn;
            }
            i++;
        }
        if(fundet == false){
                tekstFelt.innerHTML = "Der blev ike fundet noget klub";
        }
    }
</script>
<head>
    <title>Untitled Page</title>
</head>
<body>
    Klubnummer <input id="nummerTxt" type="text" />
    <input type="button" onclick="findKlubNavn();" value="Søg" />
    <div id="tekstFelt"></div>
</body>
</html>
Avatar billede stephanryer Nybegynder
20. februar 2006 - 11:50 #2
Prøv at køre det her og se om ikke det gør hvad du gerne vil have :D

Det er linierne

    liste.push(new Par(1,"AJAX"));
    liste.push(new Par(2,"Real Madrid"));
    liste.push(new Par(3,"Manchester United"));
    liste.push(new Par(100,"Chelsea"));

...der beskriver hvilke numre de forskellige klubber har.
Avatar billede d.kryger Praktikant
20. februar 2006 - 12:08 #3
Jo, det er noget i den stil.
Jeg vil dog godt have det sådan at man blot skal "forlade" feltet med klub nr., og så skriver den klubben...

Kan det lade sig gøre?
Avatar billede stephanryer Nybegynder
20. februar 2006 - 13:04 #4
Alt kan lade sig gøre. Jeg kan lave det så klubben bliver fundet i det øjeblik man indtaster nummeret?

Man taster fx 1 og klubben med nr 1 vises. Derefter trykker man 4 og klub nr. 14 vises.

Trykker man derefter 2 er det klub med nummer 142 der vises. Var det noget ;)
Avatar billede stephanryer Nybegynder
20. februar 2006 - 13:12 #5
Jeg har ændret Par til Klub, hvilket jeg fandt mere passende.

Prøv om dette gør hvad du vil have:

<html>
<script>
    var liste = new Array();
    liste.push(new Klub(1,"AJAX"));
    liste.push(new Klub(2,"Real Madrid"));
    liste.push(new Klub(3,"Manchester United"));
    liste.push(new Klub(100,"Chelsea"));
    function Klub(nr, navn){
        this.nr = nr;
        this.navn = navn;
    }
    function findKlubNavn(){
        var i = 0;
        var fundet = false;
        var nummer = nummerTxt.value;
        while(i < liste.length && fundet == false){
            var klub = liste[i];
            if(klub.nr == nummer){
                fundet = true;
                tekstFelt.innerHTML = "Med klubnummer "+klub.nr+" tilhører klubben "+klub.navn;
            }
            i++;
        }
        if(fundet == false){
                tekstFelt.innerHTML = "Der blev ikke fundet noget klub med nummeret "+nummerTxt.value;;
        }
    }
</script>
<head>
    <title>Untitled Page</title>
</head>
<body>
    Klubnummer <input id="nummerTxt" type="text" onkeyup="findKlubNavn();" />
    <div id="tekstFelt"></div>
</body>
</html>
Avatar billede d.kryger Praktikant
20. februar 2006 - 13:20 #6
Jeg vil godt have det sådan at når man forlader feltet (evt. med tabulator) så skriver den klubben!

Vil du kigge på det?
Avatar billede stephanryer Nybegynder
20. februar 2006 - 13:23 #7
Så udskift "onkeyup" med "onfocusout"
således:

...

Klubnummer <input id="nummerTxt" type="text" onfocusout="findKlubNavn();" />

...

Virker det så ikke?
Avatar billede d.kryger Praktikant
20. februar 2006 - 13:26 #8
Jo, tak for det...
Læg et svar og du får point!
Avatar billede stephanryer Nybegynder
20. februar 2006 - 13:52 #9
Kommer her :) Skriv endelig hvis du vil have det udvidet.
Avatar billede d.kryger Praktikant
20. februar 2006 - 13:53 #10
OK, det skal jeg gøre!!!
Avatar billede d.kryger Praktikant
21. februar 2006 - 10:24 #11
Hej stephanryer

Jeg har to felter i samme form, hvor den skal tjekke numret, hvordan får jeg den til det?

Den skal skrive klubnavnet udfor hvert klubnummer (altså to steder)...

Felterne ser sådan ud:
<input class="input_bgo3" type="text" maxlength="3" name="klubnr_1">
<input class="input_bgo3" type="text" maxlength="3" name="klubnr_2">
Avatar billede stephanryer Nybegynder
21. februar 2006 - 11:44 #12
Here you go :D

<html xmlns="http://www.w3.org/1999/xhtml" >
<script>
    var liste = new Array();
    liste.push(new Klub(1,"AJAX"));
    liste.push(new Klub(2,"Real Madrid"));
    liste.push(new Klub(3,"Manchester United"));
    liste.push(new Klub(100,"Chelsea"));
    function Klub(nr, navn){
        this.nr = nr;
        this.navn = navn;
    }
    function findKlubNavn(nummer, outputFelt){
        var i = 0;
        var fundet = false;
        while(i < liste.length && fundet == false){
            var klub = liste[i];
            if(klub.nr == nummer){
                fundet = true;
                outputFelt.innerHTML = "Med klubnummer "+klub.nr+" tilhører klubben "+klub.navn;
            }
            i++;
        }
        if(fundet == false){
                outputFelt.innerHTML = "Der blev ikke fundet nogen klub med nummeret "+nummer;
        }
    }
</script>
<head>
    <title>Untitled Page</title>
</head>
<body>
    Klubnummer <input id="klubnr_1" type="text" onkeyup="findKlubNavn(klubnr_1.value, tekst_1);" />
    <span id="tekst_1"></span>
    <br />
    <br />
    Klubnummer <input id="klubnr_2" type="text" onkeyup="findKlubNavn(klubnr_2.value, tekst_2);" />
    <span id="tekst_2"></span>
</body>
</html>
Avatar billede stephanryer Nybegynder
21. februar 2006 - 11:45 #13
Du kan nu selv tilføje alle dem du vil:

Klubnummer <input id="klubnr_3" type="text" onkeyup="findKlubNavn(klubnr_3.value, tekst_3);" />
    <span id="tekst_3"></span>

Bare ændre alle 2-taller til et andet tal fx.
Avatar billede d.kryger Praktikant
21. februar 2006 - 14:49 #14
Bare for at være vanskelig, kan du så lave det sådan at den som standard skriver "Indtast venligst et klubnummer i feltet til venstre", og det skifter så til "klubnavn" og "fejlbesked"?
Avatar billede stephanryer Nybegynder
21. februar 2006 - 16:21 #15
Det kan du skam uden videre selv klare :D

<span id="tekst_2"></span>

rettes til

<span id="tekst_2"> Indtast venligst noget </span>

Du indsætter altså bare startbeskeden mellem de to span-tags :D
Avatar billede d.kryger Praktikant
21. februar 2006 - 16:22 #16
Snedigt!!!
Tak for hjælpen!
Avatar billede stephanryer Nybegynder
21. februar 2006 - 16:25 #17
Selv tak :D
Avatar billede roenving Novice
25. februar 2006 - 16:22 #18
>>stephanryer og d.kryger

Det kan da laves en hel del lettere (ud fra oleboles opskrift, f.eks. i http://www.eksperten.dk/spm/683968 !-)

<script type="text/JavaScript">
var klubber = {
  k1:"AC Horsens",
  k2:"AGF",
  k3:"Brøndby",
  k4:"Esbjerg",
  k5:"FC København",
  k6:"FC Midtjylland",
  k7:"FC Nordsjælland",
  k8:"OB",
  k9:"Silkeborg",
  k10:"SønderjyskE",
  k11:"Viborg",
  k12:"AaB"
};
function findKlub(elm) {
    var klub = document.getElementById(elm.name.replace(/nr/,"navn"));
   
    if (elm.value!="" && klubber["k"+elm.value] ){
        klub.value = klubber["k"+elm.value];
    } else {
        klub.value = "Ingen klubber med det nummer";
        elm.select();
    }
}
</script>

Hjemmehold:<br>
<input type="text" name="Hnr" onblur="findKlub(this)" style="width:40px">
<input type="text" name="Hnavn" id="Hnavn" style="width:250px">
<br>
Udehold:<br>
<input type="text" name="Unr" onblur="findKlub(this)" style="width:40px">
<input type="text" name="Unavn" id="Unavn" style="width:250px">
<br>
Avatar billede d.kryger Praktikant
07. marts 2006 - 13:28 #19
stephanryer -> Jeg har lige konstateret at det ikke virker i Firefox og Netscape... Kan vi gøre noget ved det?
Avatar billede stephanryer Nybegynder
07. marts 2006 - 13:29 #20
prøvet roenvings løsning så?
Avatar billede d.kryger Praktikant
08. marts 2006 - 08:10 #21
Jeg har ændret "onfocusout" til "onblur" som roenving har i hans kode. Nu virker det i både IE, FF mv.
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