Toon posts:

[javascript] onFocus naar de volgende input

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo,

ik heb een input waarvan in niet wil dat hij word veranderd door de mens. Dus ik zorg ervoor dat als je de muis erop zet hij naar de volgende input gaat die te zien is op de pagina. Dus als iemand aan het tabben is hij toch bij de volgende input komt ....

Nu heb ik dit script:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function doNext(el){

    var f = el.form;
    var els = f.elements;
    var x, nextEl;
    for (var i=0, len=els.length; i<len; i++){
        x = els[i];
        if (el == x && (nextEl = els[i+1])){
            if (nextEl.focus) nextEl.focus();
        }
    }
}

// en hij de input:
<input  id="code2" type="text" value="" onFocus="doNext(this)">

Maar wat nu het probleem is, is dat de input die niet ingevult mag worden de laatste in in dat <form>
Er komt daana nog een ander <form> maar daar springt hij niet naartoe.

Hoe kan ik het zo maken dat hij naar het volgende <form> springt als er een volgend forum is, en blur() gebruikt als hij de allerlaatste is op de pagina ...

Alvast bedankt, Koen

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 13:26

crisp

Devver

Pixelated

Nog nooit gehoord van het disabled of readonly attribuut?

Intentionally left blank


  • chris
  • Registratie: September 2001
  • Laatst online: 11-03-2022
Je zegt: var f = el.form;

Wat je moet doen is nog een loop om het geheel heenzetten die iets doet als:
JavaScript:
1
2
3
4
5
6
var forms = document.getElementsByTagName("form");
for(var i=0; i < forms.length; i++)
{
  var f = forms[i];
  // rest van de code
}

Verder zijn er een aantal checks die je kan uitvoeren voor je naar het volgende element springt, met name de dingen die crisp zegt. Ook dingen als input=hidden en onzichtbare elementen wil je misschien gaan skippen, maar misschien gaat dat veel te ver voor je probleem ;)