"please-answer-here" <noone@nohost.nodomain.invalid> writes:
[multipost]
> Ved det og beklager dybt. Men desperationen vandt over opdragelsen/etiketten
>
Det går nok :) En anden gang så skriv noget i stil med "også spurgt i
c.l.j".
> Her er koden, som jeg bokser med: problemet er settimeout sætningen
Ikke det eneste problem :)
> function validate(that) {
> var slam='slum';
> var xid=that.id;
Så "that" refererer til en form-control med en id, som vi gemmer
i "xid".
> var yid=that.form.id;
og "yid" gemmer id'en på formen som "that" er i.
> var xantelm=that.form.elements.length;
> for (i=0;i<xantelm;i++) {
Så gennemløber vi alle elementer i formen ...
> if (document.forms[yid].elements[i].id == xid) {
og tjekker om deres id er lig med xid. Altså om de er den control
der også ligger i "that". Lidt spild, når vi nu allerede har fat
i den.
> if (that.value.length!=3) {
> alert('Exactly 3 characters are needed');
> setTimeout('document.forms[yid].elements[i].focus()',200);
og den her skal vi så fikse.
En noget kortere version:
----
function validate(that) {
if (that.value.length != 3) {
alert('Exactly 3 characters are needed');
setTimeout(function(){that.focus();},200);
}
}
----
Hvis man ikke optimerer, så kan du skifte din problemlinje ud med:
setTimeout(function(){
document.forms[yid].elements[xid].focus();
},200);
>> Jeg har ikke fulgt med i tråden i c.l.j, så jeg ved ikke hvor "i"
>> kommer fra. Hvis det her foregår inde i en løkke, så "i" ændrer sig,
>> så skal man gøre noget mere.
Du kan så *ikke* bruge "i", da du jo fortsætter løkken og derfor
ændrer "i"'s værdi efter at setTimeout er kaldt. For at få det til at
virke, skal man oprette en ny variabel til at holde værdien (dette
giver kun mening når man starter flere setTimeout'er fra samme løkke,
og skulle altså ikke have været et problem for dig ... :).
function makeFocusFunc(icopy) {
return function() {
document.forms[yid].elements[icopy].focus();
};
}
setTimeout(makeFocusFunc(i), 200);
Hyg!
/L
--
Lasse Reichstein Nielsen - lrn@hotpop.com
DHTML Death Colors: <URL:
http://www.infimum.dk/HTML/rasterTriangleDOM.html>
'Faith without judgement merely degrades the spirit divine.'