[JS] Form submit met enter, maar niet bij enter in textfield

Pagina: 1
Acties:

  • Urk
  • Registratie: Maart 2000
  • Laatst online: 04-05 11:56
Ik heb een Formulier met meerdere textfields, het formulier moet gesubmit worden bij een Enter keypress. Dat werkt prima, echter nu kwam ik er later achter dat een enter in een textarea ook leidt tot een submit van het form, terwijl ik dat nou juist niet wil.

Nu heb ik al geprobeerd om het op een logische oplossing op te lossen, namelijk bij een Enter keypress in een functie checken of de textarea de focus heeft. Maar helaas kwam ik er via www.irt.org achter dat je niet de focus kan uitlezen van een veld. Dus je kan niet uitlezen of een veld focus heeft ja of nee.

Heeft iemand een andere manier om dit simpel op te lossen zonder de gehele code om te gooien en zonder na iedere focus op een veld een aparte variable weg te schrijven? :?

Alvast _/-\o_

  • André
  • Registratie: Maart 2002
  • Laatst online: 06-05 11:13

André

Analytics dude

Je kunt simpel checken welk element de keypress firede met event.srcElement en event.Target :)

  • tweakerbee
  • Registratie: Maart 2000
  • Laatst online: 05-05 21:37

tweakerbee

dus..?

Kun je een demo laten zien van wat je bedoelt, en evt. je code posten?
Anders is het lastig helpen. Textarea moet dacht ik nooit submitten bij een enter.

You can't have everything. Where would you put it?


  • Urk
  • Registratie: Maart 2000
  • Laatst online: 04-05 11:56
tweakerbee schreef op donderdag 28 april 2005 @ 01:12:
Kun je een demo laten zien van wat je bedoelt, en evt. je code posten?
Anders is het lastig helpen. Textarea moet dacht ik nooit submitten bij een enter.
De code is heel erg groot, dus kortgezegd komt het hierop neer:
HTML:
1
2
3
4
5
6
7
<form name="nieuwegebruiker" method="post" action="pagina.asp?locatie=klanten" onkeypress="if(event.keyCode==13){this.submit();}">

<input type="text" name="telefoon" size="12" maxlength="11" />
<textarea name="memo" rows="4" cols="0" style="width: 228px;" class="textfield"></textarea>

<input type="button" value="submit" class="textfield" onclick="this.form.submit();" />
</form>

  • Urk
  • Registratie: Maart 2000
  • Laatst online: 04-05 11:56
Geweldig André!! _/-\o_
Zo te zien werkt dat prima, heb het nu zo -->
HTML:
1
onkeypress="if(event.keyCode==13 && event.srcElement!=document.nieuwegebruiker.memo){this.submit();}"

offtopic:
Zag in het nieuws dat je een nieuwe moderator bent! En moet zeggen, het bevalt me nu al prima! Dus ook bij deze: Welkom! :P

[ Voor 7% gewijzigd door Urk op 28-04-2005 01:26 ]


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

HTML:
1
<input type="button" value="submit" class="textfield" onclick="this.form.submit();" />

Waarom gebruik je niet een gewone submit button? Waarschijnlijk heb je dan ook geen javascript nodig om 'm vanuit een text-input met enter te kunnen submitten.

Verder is je JS IE-only, maar hopelijk wist je dat al.

[ Voor 10% gewijzigd door crisp op 28-04-2005 08:55 ]

Intentionally left blank


  • Urk
  • Registratie: Maart 2000
  • Laatst online: 04-05 11:56
crisp schreef op donderdag 28 april 2005 @ 08:54:
HTML:
1
<input type="button" value="submit" class="textfield" onclick="this.form.submit();" />

Waarom gebruik je niet een gewone submit button? Waarschijnlijk heb je dan ook geen javascript nodig om 'm vanuit een text-input met enter te kunnen submitten.

Verder is je JS IE-only, maar hopelijk wist je dat al.
Dat heb ik gedaan vanwege de focus die dan al op het veld staat, ik wil er geen selected border omheen.

Ik zie inderdaad dat het in FF niet werkt, is er een andere oplossing die in ieder geval wel in FF en Opera 7> werkt?

  • Urk
  • Registratie: Maart 2000
  • Laatst online: 04-05 11:56
Is er dus nog een alternatief voor het IE only event.srcElement wat wel op meerdere browsers werkt? :?

  • r0bert
  • Registratie: September 2001
  • Laatst online: 26-04 17:38
JavaScript:
1
2
3
4
5
6
7
function fBla(e)
    {
        if (e)
        {   if (!e) var e   = window.event;
            
            oEl = (e.srcElement || e.target);
        }
zoeken is eitje ;)

  • Urk
  • Registratie: Maart 2000
  • Laatst online: 04-05 11:56
r0bert schreef op donderdag 28 april 2005 @ 19:11:
JavaScript:
1
2
3
4
5
6
7
function fBla(e)
    {
        if (e)
        {   if (!e) var e   = window.event;
            
            oEl = (e.srcElement || e.target);
        }
zoeken is eitje ;)
Hmmm...beetje vage code, is mij niet geheel duidelijk wat hier nou gebeurt... 8)7

  • Annie
  • Registratie: Juni 1999
  • Laatst online: 25-11-2021

Annie

amateur megalomaan

Urk schreef op donderdag 28 april 2005 @ 21:26:
[...]

Hmmm...beetje vage code, is mij niet geheel duidelijk wat hier nou gebeurt... 8)7
Het alternatief voor event.srcElement is e.target. Verschil tussen FF en IE is verder dat het event in IE een property is van het window object en in FF wordt deze meegeven aan de functie die het event afhandelt (meestal wordt hier e voor gebruikt).
JavaScript:
1
2
3
4
5
6
7
8
9
10
function myEventHandler(e)
{
  // e zal niet gedefinieerd zijn in IE,
  // dus even kwestie van window.event nemen
  if (!e) e = window.event;

  // event source bepalen
  // als e.srcElement niet bestaat, dan zal het die andere wel zijn ;-)
  var src = e.srcElement || e.target;
}


De code van r0bert is inderdaad vaag :P

[ Voor 5% gewijzigd door Annie op 28-04-2005 23:19 ]

Today's subliminal thought is:


  • r0bert
  • Registratie: September 2001
  • Laatst online: 26-04 17:38
Mja, maar ik zat in de buurt .. Wou het gewoon niet verklappen en wel een voorzetje geven :P

edit:
wist de smilie niet meer en die stond niet bij quickreply, dus:
O-)

[ Voor 31% gewijzigd door r0bert op 29-04-2005 00:48 ]

Pagina: 1