09. oktober 2003 - 13:30
Der er
21 kommentarer og 1 løsning
Problemer med focus?
Jeg har et lille problem med mit script, scriptet virker næsten som det skal, og jeg får heller ikke nogen fejl, men den skulle gerne sætte cursoeren i det felt det er galt, men det gør den ikke, hvorfor? if (fejl == 1) { document.parameter.elements["antal_" + navn].value = document.parameter.elements['oldAntal_'+ navn].value; alert("Du må kun indtaste tal mellem 1 - 99"); document.parameter.elements["antal_" + navn].focus(); return false; }
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
09. oktober 2003 - 13:51
#1
hvad gør den istedet ?
09. oktober 2003 - 14:09
#2
Den sætter ikke focus på noget
09. oktober 2003 - 14:17
#3
og hvad er der i variablen "navn" .. og findes det tilsvarende felt ?
09. oktober 2003 - 14:20
#4
ja for den første linie virker fint
09. oktober 2003 - 14:25
#5
prøv: if (fejl == 1) { document.parameter.elements['antal_' + navn].value = document.parameter.elements['oldAntal_'+ navn].value; document.parameter.elements['antal_' + navn].focus(); alert('Du må kun indtaste tal mellem 1 - 99'); return false; }
09. oktober 2003 - 14:39
#6
Der sker stadig ikke noget
09. oktober 2003 - 14:45
#7
jeg tror problemmet er at din alert tager fokusset fra din boks. Prøv at bytte om på de to: if (fejl == 1) { document.parameter.elements['antal_' + navn].value = document.parameter.elements['oldAntal_'+ navn].value; alert('Du må kun indtaste tal mellem 1 - 99'); document.parameter.elements['antal_' + navn].focus(); return false; }
09. oktober 2003 - 14:48
#8
Det hjalp ikke, men det var vel også det jeg startede med at skrive
09. oktober 2003 - 15:04
#9
kunne du ikke skrive lidt mere af koden - umiddelbart ser det rigtig nok ud, især hvis du siger den første linie virker.
09. oktober 2003 - 15:17
#10
function beregn(navn){ var stk = document.parameter.elements["antal_" + navn].value; var fejl = 0; if(!(stk.match(/^[0-9\+ ]+$/))) { fejl = 1; } stk = parseInt(stk); if(stk < 0 || stk > 99 ){ fejl = 1; } if (fejl == 1) { document.parameter.elements['antal_' + navn].value = document.parameter.elements['oldAntal_'+ navn].value; alert('Du må kun indtaste tal mellem 1 - 99'); document.parameter.elements['antal_' + navn].focus(); return false; } var lokalPris = 0; var stkPris = 0; var oldStr = parseFloat(document.parameter.elements['oldStr_'+ navn].value); var oldAntal = parseFloat(document.parameter.elements['oldAntal_'+ navn].value); gebyr = <%response.write session("startGebyr")%>; stkPris = findPris(document.parameter.elements['str_' + navn].value); oldPris = oldStr * oldAntal lokalPris = stk * stkPris var tempPris = parseFloat(document.getElementById("pris").innerHTML); var pris = tempPris - oldPris; pris = pris + lokalPris antal = (antal - oldAntal) + stk; document.getElementById("antal").innerHTML = antal; document.getElementById("pris").innerHTML = pris; document.getElementById("prisIAlt").innerHTML = (pris + gebyr); document.parameter.elements['oldStr_'+ navn].value = stkPris; document.parameter.elements['oldAntal_'+ navn].value = stk; document.parameter.pris.value = pris; document.parameter.antal.value = antal; }
09. oktober 2003 - 15:35
#11
tænkte nu også på selve formen du bruger, hvis du kunne give et eksempel evt. bare et link.
09. oktober 2003 - 15:39
#12
<input type="text" name="antal_23" size="1" value="0" onChange="java script:beregn('23');" onFocus="java script:this.select();" class="brod_lille">
09. oktober 2003 - 19:22
#13
<ole> Der skal _aldrig_ bruges 'java script:' i en event-handler :) /mvh </bole>
09. oktober 2003 - 19:52
#14
Hvorfor ikke det?
09. oktober 2003 - 20:31
#15
Fordi, en event-handler ikke kan andet end afvikle JavaScript - her er brugen af JavaScript-pseudo-protokollen helt misforstået. Den er til brug i f.eks. href'en i et link - eller til direkte indtastning i adresselinien - men _ikke_ i en event-handler. /mvh
10. oktober 2003 - 06:22
#16
Kan du så give et eksempel på hvordan jeg så kan trigge min funktion hvis ikke jeg skal bruge "onChange"?
10. oktober 2003 - 14:12
#17
du skal bare fjerne java script: - altså: <input type="text" name="antal_23" size="1" value="0" onChange="beregn('23');" onFocus="this.select();" class="brod_lille">
10. oktober 2003 - 14:38
#18
ja ok på den måde :-) Men den fokusere stadig ikke på det rigtige felt
10. oktober 2003 - 16:12
#19
prøv at lave det til: onChange="return beregn('23');" eller onblur="return beregn('23');"
10. oktober 2003 - 17:04
#20
Prøv med en URL til siden ... det begynder at minde lidt om Lykkehjulet, det her :D /mvh
10. oktober 2003 - 17:18
#21
enig med olebole. Det ville være lettere hvis vi kan se siden hvor det går galt for normalt er der ikke noget problem med focus() metoden.
31. oktober 2003 - 22:45
#22
jeg takker for hjælpen
Vi tilbyder markedets bedste kurser inden for webudvikling