Avatar billede heyn Nybegynder
07. april 2009 - 19:47 Der er 12 kommentarer og
1 løsning

Hvordan undgår man at en form submit'ter ved 'enter' i inputfelt?

Hej Eksperter

Det er sikkert ganske simpelt - Jeg kan bare ikke.

Jeg har en formular hvor teksten i nogle inputfelter udfyldes ved hjælp af en stregkodelæser. Da den tekst stregkodelæseren placerer i inputfeltet automatisk afsluttes med et 'enter' vil formen som inputfeltet tilhører jo normalt blive submit'et. I mit tilfælde skal flere af felterne udfyldes med stregkodeaflæser, og jeg ønsker derfor at formen kun kan sibmit'es ved klik på button.

Kender nogle en løsning på dette problem?

Mit kode er i princip således:

<form action="www.en.side">
<input type="tekst" name="felt_1" /> // indlæses med stregkodelæser.
<input type="tekst" name="felt_2" /> // indlæses med stregkodelæser.
<input type="submit" name="opret" value"Opret" />
</form>

Mvh Christian
Avatar billede heyn Nybegynder
07. april 2009 - 19:50 #1
Hovsa:
<form action="www.en.side">
<input type="text" name="felt_1" /> <!-- indlæses med stregkodelæser. -->
<input type="text" name="felt_2" /> <!-- indlæses med stregkodelæser. -->
<input type="submit" name="opret" value="Opret" />
</form>

Det må vel være en eller anden eventhandler tekstfelterne som returnerer false?
Avatar billede jih Nybegynder
07. april 2009 - 19:56 #2
prøv noget ala:

<form name="myForm" action="www.en.side" onsubmit="return checkEnter(this, event);">
<input type="tekst" name="felt_1" />
<input type="tekst" name="felt_2" />
<input type="submit" name="opret" value"Opret" />
</form>

<script type="text/javascript">
  function checkEnter(field, evt) {
    if (!evt) var evt = window.event;
    if (evt.keyCode) { keyCode = evt.keyCode; }
    else if (evt.which) { keyCode = evt.which; }

    if (keyCode == 13) { // enter
      return false;
    } else {
      return true;
}
</script>
Avatar billede jih Nybegynder
07. april 2009 - 19:56 #3
ups, der mangler et }

<script type="text/javascript">
  function checkEnter(field, evt) {
    if (!evt) var evt = window.event;
    if (evt.keyCode) { keyCode = evt.keyCode; }
    else if (evt.which) { keyCode = evt.which; }

    if (keyCode == 13) { // enter
      return false;
    } else {
      return true;
    }
}
</script>
Avatar billede olebole Juniormester
08. april 2009 - 02:06 #4
<ole>

<form action="www.en.side" onsubmit="return false">
<input type="text" name="felt_1" /> <!-- indlæses med stregkodelæser. -->
<input type="text" name="felt_2" /> <!-- indlæses med stregkodelæser. -->
<button name="opret" onclick="this.form.submit()">Opret</button>
</form>

/mvh
</bole>
Avatar billede olebole Juniormester
08. april 2009 - 02:07 #5
Forklaring: Når en form submittes med JS, må dens onsubmit event ikke fyres af  ;o)
Avatar billede jih Nybegynder
08. april 2009 - 12:21 #6
når du kalder form.submit(), fyres formens onsubmit event så ikke af?
Avatar billede olebole Juniormester
08. april 2009 - 13:03 #7
Nej
Avatar billede olebole Juniormester
08. april 2009 - 13:05 #8
Du kan jo bare teste med 'Return' og knappen i denne kode:

<form action="www.en.side" onsubmit="alert('Jeg submitter ...')">
<input type="text" name="felt_1" /> <!-- indlæses med stregkodelæser. -->
<input type="text" name="felt_2" /> <!-- indlæses med stregkodelæser. -->
<button name="opret" onclick="this.form.submit()">Opret</button>
</form>
Avatar billede olebole Juniormester
08. april 2009 - 13:09 #9
Nåja, for at få gamle, buggy Firefox med, er du nødt til at returnere false på alle knapper. Den er som bekendt for ubegavet til at skelne alm. knapper fra submit knapper, så alle knapper er submit knapper i FF  :o|
Avatar billede olebole Juniormester
08. april 2009 - 13:12 #10
- altså:
    <button name="opret" onclick="this.form.submit();return false">Opret</button>
Avatar billede jih Nybegynder
15. maj 2009 - 09:10 #11
lukketid?
Avatar billede heyn Nybegynder
13. november 2010 - 14:34 #12
Ganske rigtigt. Lukketid! Sorry.
Tak for alle indlægene. Smider i et svar.

MVH Christian
Avatar billede heyn Nybegynder
16. november 2010 - 10:14 #13
Nå - Ingen vil lægge svar. Så må jeg desværre selv.
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