Toon posts:

[javascript] Elementnr. van active field

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hoe kan ik het elementnummer van een bepaald field uit een form uitlezen wanneer ik dit field selecteer?
Dus ik heb een invoerveld dat als x-ste item in een form staat, deze krijgt de focus en x wordt doorgegeven naar een bepaalde functie.

  • Annie
  • Registratie: Juni 1999
  • Laatst online: 25-11-2021

Annie

amateur megalomaan

just a thought:
Kan je niet beter "this" meesturen aan de functie ipv. een elementnr?

* Annie weet dus niet hoe je rechtstreeks de x op kan vragen (rare contructies met loopjes daargelaten)

Today's subliminal thought is:


  • Pelle
  • Registratie: Januari 2001
  • Laatst online: 18:23

Pelle

🚴‍♂️

Idd, this is je vriend. Meer een vraag voor /13 overigens.

  • OzBoz
  • Registratie: Maart 2000
  • Laatst online: 09-09 19:36

OzBoz

.:.H.:.I.:.P.:.

move vanuit P&W

My Fizion | My 3D prints | LinkedIn


Verwijderd

Topicstarter
Ok, met this kan ik inderdaad in de functie de eigenschappen van het meegestuurde object uitlezen. Maar wat voor mij belangrijk is is dat ik het elementnr van dat object eruit kan krijgen. Ik kan het niet op object.name doen, omdat de input velden in een array gepost (php) worden (name=naam[])

form ziet er ongeveer zo uit:
[ ][ ][ ][ ]
[ ][ ][ ][ ]
[ ][ ][ ][ ]
[ ][ ][ ][ ]
allemaal (input type="text") dus

Ik hoop dat dit een beetje duidelijk maakt wat ik bedoel. Het moet in ieder geval niet zo zijn dat ik de namen van de inputvelden moet gaan aanpassen.

  • Pelle
  • Registratie: Januari 2001
  • Laatst online: 18:23

Pelle

🚴‍♂️

Op woensdag 05 december 2001 14:25 schreef Nokia het volgende:
Ok, met this kan ik inderdaad in de functie de eigenschappen van het meegestuurde object uitlezen. Maar wat voor mij belangrijk is is dat ik het elementnr van dat object eruit kan krijgen.
Waarom wil je dat? Is misschien wel even handig om te vermelden; misschien zoek je nu wel naar een oplossing die eigenlijk niet van toepassing is op je probleem. Wat wil je je doen met dat elementnr?
Ik kan het niet op object.name doen, omdat de input velden in een array gepost (php) worden (name=naam[])
Ah, I see. Worden die form-elementen ook dynamisch gegenereerd, of blijft het een vast form?

Iets wat misschien ook wel gaat werken is naast de name de elementen ook een id meegeven, waarna je een formelement op id kunt selecten.

Maar nogmaals, wat is de beoogde toepassing? Ben wel benieuwd eigenlijk..

Verwijderd

Topicstarter
dat extra id toevoegen klinkt goed, dat ga ik eens proberen

  • Pelle
  • Registratie: Januari 2001
  • Laatst online: 18:23

Pelle

🚴‍♂️

Een oplossing:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<html>
<head>
    <title>vet relaxed doed</title>
    <script language="javascript" type="text/javascript">
    <!--
      function tabJaOfNee(what) {
        if (what.value.length > 3) {
            nextId = eval(what.id) + 1;
            document.getElementById(nextId).focus();
        }
      }
    // -->
    </script>

    
</head>

<body>

<form name="bla">
    <input type="text" name="blaat[]" size="4" id="1" onKeyUp="tabJaOfNee(this);">
    <input type="text" name="blaat[]" size="4" id="2" onKeyUp="tabJaOfNee(this);">
    <input type="text" name="blaat[]" size="4" id="3" onKeyUp="tabJaOfNee(this);">
</form>


</body>
</html>

Alleen nog even check inbouwen die kijkt of het einde van het form bereikt is.

Verwijderd

Topicstarter
Jup, het is gelukt een script dat het mogelijk maakt om tijden in te voeren als 1000 en er dan automatisch 10:00 en vervolgens verspringt naar het volgende tijd invoerveld.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<SCRIPT LANGUAGE="javascript" TYPE="text/javascript">
function tabJaOfNee(what)
{
      // thanx to pelle
    check_hours   = /^([0-2][0-9])$/;
    check_minutes = /^([0-2][0-9]:[0-5][0-9])$/;

    if(check_hours.test(what.value))
        what.value = what.value + ":";
    else if(check_minutes.test(what.value))
    {
        nextId = eval(what.id) + 1;
        document.getElementById(nextId).focus();
    }
}
</SCRIPT>
Pagina: 1