Avatar billede jjdk Nybegynder
20. februar 2007 - 10:12 Der er 10 kommentarer og
1 løsning

Autotabulartor i form-felter

Hej.
Jeg har en form, hvor jeg har 3 inputfelter (felt1, felt2 og felt3). Datoen skal indtastes i de 3 felter:

felt1 = dd
felt2 = mm
felt3 = åååå

Jeg vil gerne, at markøren automatisk hopper videre til næste felt, når feltet er udfyldt. Herved spares nogle tryk med tabulator.
Avatar billede crazysnap Seniormester
20. februar 2007 - 15:07 #1
Hej jjdk,

Jeg har lavet et lille eksempel til dig som udfører din beskrevne handling. Håber det kan bruges ellers må du jo lige uddybe yderligere! :)



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>dato demo</title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
        <script type="text/JavaScript">
     
        function valid(field, nextFieldId)
        {
            var length = parseInt(field.getAttribute("maxlength"));
           
            if(field.value.length >= length)             
                document.getElementById(nextFieldId).focus();
        }
       
        </script>
    </head>
    <body>
        <table>
            <tr>
                <td>dd: </td><td><input id="dd" type="text" maxlength="2" onkeyup="valid(this, 'mm');"/></td>
            </tr>
            <tr>
                <td>mm: </td><td><input id="mm" type="text" maxlength="2" onkeyup="valid(this, 'yyyy');"/></td>
            </tr>
            <tr>
                <td>yyyy: </td><td><input id="yyyy" type="text" maxlength="4" onkeyup="valid(this, 'btn');"/></td>
            </tr>
            <tr>
                <td>next: </td><td><input id="btn" type="button" value="click"/></td>
            </tr>
        </table>
    </body>
</html>



Mvh.

- Snap
Avatar billede jjdk Nybegynder
20. februar 2007 - 15:11 #2
OK - jeg prøver lige. Har ellers lige fået det til at virke med noget, jeg fandt på nettet.
Avatar billede jjdk Nybegynder
20. februar 2007 - 15:12 #3
har "id" samme funktion som "name"??
Avatar billede crazysnap Seniormester
20. februar 2007 - 15:23 #4
Det bare i orden :), og nej "id" er ikke det samme som "name". "id" skal være unikt for alle elementerne på siden, det behøver "name" ikke. Det betyder at du kan gruppere elementer ved at give dem samme "name" og få fat i alle sammen ved et enkelt javascript kald. Du kan se forskellen nedenfor ud fra to javascript metoder:


- document.getElementById(elmId) <- Returnerer ét element med "id" = elmId

- document.getElementsByName(elmName) <- Returnerer et array af elementer der alle har "name" = elmName


Håber det klargjorde forskellen mellem id og name! :)


Mvh.

- Snap
Avatar billede jjdk Nybegynder
20. februar 2007 - 15:31 #5
OK - snap. Jeg er helt med. Tak for dit eksempel.
Avatar billede jjdk Nybegynder
20. februar 2007 - 15:42 #6
Aaarghhh - lige et spørgsmål, hvis du kan svare nemt:
Er det muligt at deaktivere "Enter-tasten", når der indtastes i en Form eller på en side????
Avatar billede crazysnap Seniormester
20. februar 2007 - 15:43 #7
Det var så lidt, glad for jeg kunne hjælpe!


Tak for pointene og held og lykke med det! :)


Mvh.

- Snap
Avatar billede jjdk Nybegynder
20. februar 2007 - 15:52 #8
Vil du også lige svare på mit efterfølgende spørgsmål, hvis det er muligt?
Avatar billede crazysnap Seniormester
20. februar 2007 - 15:57 #9
function DeactivateKey(e, keyNr)
        {
            if(!e) e = window.event;
           
            if (e.keyCode == 13)
                return false;
               
            return true;
        }
Avatar billede crazysnap Seniormester
20. februar 2007 - 16:00 #10
Skulle lige producere koden til dig :). Og hvis du så kalder den fra <form> tag'en burde enter key'en ikke virke, altså:


<form action="" onkeypress="return DeactivateKey(event, 13)">
</form>


Og det hele fra før sammen med det nye "Enter" script. :)


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>dato demo</title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
        <script type="text/JavaScript">
     
        function valid(field, nextFieldId)
        {
            var length = parseInt(field.getAttribute("maxlength"));
           
            if(field.value.length >= length)             
                document.getElementById(nextFieldId).focus();
        }
       
        function DeactivateKey(e, keyNr)
        {
            if(!e) e = window.event;
           
            if (e.keyCode == 13)
                return false;
               
            return true;
        }
       
        </script>
    </head>
    <body>
    <form action="" onkeypress="return DeactivateKey(event, 13)">
        <table>
            <tr>
                <td>dd: </td><td><input id="dd" type="text" maxlength="2" onkeyup="valid(this, 'mm');"/></td>
            </tr>
            <tr>
                <td>mm: </td><td><input id="mm" type="text" maxlength="2" onkeyup="valid(this, 'yyyy');"/></td>
            </tr>
            <tr>
                <td>yyyy: </td><td><input id="yyyy" type="text" maxlength="4" onkeyup="valid(this, 'btn');"/></td>
            </tr>
            <tr>
                <td>next: </td><td><input id="btn" type="button" value="click" onclick="alert('noget');"/></td>
            </tr>
        </table>
    </form>
    </body>
</html>


:)


Mvh.

- Snap
Avatar billede jjdk Nybegynder
20. februar 2007 - 16:21 #11
Det skal prøves - tusind tak :)
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