Avatar billede raekon Nybegynder
28. september 2010 - 23:41 Der er 8 kommentarer og
1 løsning

Autosubmit form efter 10 tegn i tekstfelt

Hej

Jeg skal lave noget tidsregistrering til et løb, og alle løberne har en stregkode med 10 cifre.
Jeg sidder så med en scanner, hver gang de har løbet en omgang, og stregkodens nummer scannes så ind i en form.

Det jeg gerne vil er, at når det sidste (10.) ciffer skrives, så submitter formen automatisk, så jeg ikke behøver trykke enter.

Kan det lade sig gøre?
Avatar billede erikjacobsen Ekspert
28. september 2010 - 23:57 #1
Skitse:


<script>
function test(felt,form) {
  if (felt.value.length>=10)
    form.submit();
}
</script>

<form>

  <input type="text" name="ind" onkeyup="test(this,this.form)">
 
</form>
Avatar billede raekon Nybegynder
29. september 2010 - 13:49 #2
Hej Erik
Tak for et hurtigt svar.

Jeg har dog lidt knas med nogle af felterne:

Min form hedder loberregistrering
mit textfelt hedder lobernummer

Jeg har så taget din skitse og gjort dette ved den:

<script>
function test(lobernummer,loberregistrering) {
  if (lobernummer.value.length>=10)
    form.submit();
}
</script>

og inputfeltet hedder:
<input type=\"text\" name=\"lobernummer\" tabindex=\"1\" onkeyup=\"test(lobernummer,loberregistrering)\"/>

jeg har så en submit-knap. skal den fjernes?

Jeg får en "der opstod en fejl på siden"-fejl nederst i explorer.

kan du se hvad der er galt?

jeg skal måske lige nævne at det egentlig er en PHP-fil...

-Morten
Avatar billede raekon Nybegynder
29. september 2010 - 14:14 #3
og PHP filen er jo så skyld i \" i input-feltet...
Avatar billede erikjacobsen Ekspert
29. september 2010 - 14:33 #4
Du skal ikke lave om i javascript-delen. Det er ikke "navne", der står... :)  Submitknappen behøver nok ikke være der. Noget i retninge af:

<script>
function test(felt,form) {
  if (felt.value.length>=10)
    form.submit();
}
</script>


<input type=\"text\" name=\"lobernummer\" tabindex=\"1\" onkeyup=\"onkeyup="test(this,this.form)\"/>
Avatar billede erikjacobsen Ekspert
29. september 2010 - 14:33 #5
Ah, nej, sidste linie:

<input type=\"text\" name=\"lobernummer\" tabindex=\"1\" onkeyup=\"test(this,this.form)\"/>
Avatar billede raekon Nybegynder
29. september 2010 - 21:55 #6
HAHAAAAAAAAAAAAA! SWEET!!! Det kører... Jeg fatter godt nok ikke en brik, men det virker....

Det der "felt", hvordan ved programmet hvad det dækker over.
er det virkelig en del af sproget?

Men tusind tak for hjælpen :-)
Avatar billede raekon Nybegynder
29. september 2010 - 22:00 #7
takker for svar og stor respekt for at gøre det for "ingenting".
Avatar billede erikjacobsen Ekspert
29. september 2010 - 22:58 #8
Jah, point eller ingenting - næsten det samme, hvad?

Det magiske ord er "this".

Når du bruger javascript indeni en HTML-dims, som fx et textfelt, så er "this" faktisk selve dimsen. Derfor behøver man ikke navnet på dimsen. "this.form" er så den form, som dimsen er indeni. Man behøver heller ikke navnet på formen.

De to værdier sender jeg så med som parametre til "test"-funktionen (Ja, "test" er et dårligt navn). Inden i "test"-funktionen er de så kendt som de formelle parametre "felt" og "form", men det kan være vilkårlige navne.
Avatar billede KogeNielsen Nybegynder
19. april 2011 - 21:51 #9
Hej alle,

Jeg tillader mig lige at samle op på denne tråd, da jeg står med et næsten identisk problem, dog i asp.net.

Jeg har ligeledes scanner og vil gerne have autosubmit indhold ved 10. tegn.

Jeg har forklaret mere i min tråd:
http://www.eksperten.dk/spm/936945

Håber at I tilgiver min "tråd highjacking".
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