Toon posts:

[HTML] "on enter submit" werkt niet

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een TextBox gemaakt (emailadres er in en jij ontvangt ook de nieuwsbrief) ook staat er een mooi knopje bij "submit". Deze heeft dan ook een onclick event wat het email adres uit de textbox aan de mailing list toevoegd.
Dit werkt, alleen tot mijn grote verbazing werkt het niet als je in de textbox staat en op enter drukt. Je ziet wel dat er een post wordt gedaan naar de server maar hij gebruikt niet de functie die aan de submit knop zit.
Het stomme is dat ik zat formpjes heb gehad waar dit wel werkte.
Ik heb ook al gezocht maar echt veel vinden doe ik niks, heb wel een javascript oplossing maar die werkt (ook) nog niet.

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 00:21

crisp

Devver

Pixelated

geen onclick gebruiken op je submitbutton, maar het onsubmit event van je form gebruiken

Intentionally left blank


  • cdgrit
  • Registratie: Mei 2002
  • Laatst online: 15-08 14:58
<FORM onSubmit="JavaScript()">
</FORM>


Originele startpagina - Stadindex.nl


  • marrik
  • Registratie: Augustus 2003
  • Laatst online: 01-07 11:55

marrik

Live long and prosper

Post je code eens.
Moet iets zijn als:

code:
1
2
3
4
<form name='myform' action='opslaan.asp' method='post'>
Emailadres:<input name='emailadres' type='text'><br>
<input type='submit' value='verstuur'><br>
</form>


D'Mzz!
Marrik

Marrik


  • whoami
  • Registratie: December 2000
  • Laatst online: 22:54
Guys, dit is ASP.NET.

Debug je code eens, en kijk een wat er gebeurt in je OnClick event handler.

https://fgheysels.github.io/


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

whoami schreef op 08 October 2003 @ 11:33:
Guys, dit is ASP.NET.

Debug je code eens, en kijk een wat er gebeurt in je OnClick event handler.
Dat maakt niets uit. Een enter werkt niet altijd goed; ook niet in ASP.Net. :)
Dit werkt, alleen tot mijn grote verbazing werkt het niet als je in de textbox staat en op enter drukt
Oftewel; ik denk niet dat het ligt aan de serversidecode. Je moet er alleen voor zorgen dat je bij het drukken op de enter-knop simuleert alsof er op de submit knop wordt gedrukt.

[ Voor 36% gewijzigd door gorgi_19 op 08-10-2003 11:40 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 00:21

crisp

Devver

Pixelated

gorgi_19 schreef op 08 October 2003 @ 11:34:
[...]

Dat maakt niets uit. Een enter werkt niet altijd goed; ook niet in ASP.Net. :)


[...]

Oftewel; ik denk niet dat het ligt aan de code. Je moet er alleen voor zorgen dat je bij het drukken op de enter-knop simuleert alsof er op de submit knop wordt gedrukt.
een enter in een form-field is natuurlijk niet hetzelfde als een onclick op een button; verder is dit niet een ASP.NET issue, maar gewoon een clientside iets. Je kan clientside ook wel met events je enter af gaan vragen, maar ten eerste is dat lastig crossbrowser te maken, en ten tweede moet je gewoon de manier gebruiken die daarvoor bedoeld is - het onsubmit event van je form...

Intentionally left blank


  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Je event handler hang inderdaad gewoon aan het click event van je button en niet aan het submit event van een form. Het submitten van een form kan je detecteren door bijvoorbeeld in je page_load te controleren of Page.IsPostback true is. Aangezien asp.net maar 1 form per page kan hebben is het dan altijd een postback van het form. Als je echt wilt dat alleen die event handler van de button uitgevoerd wordt zul je clientside moeten simuleren dat er op de knop gedrukt wordt.

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


  • whoami
  • Registratie: December 2000
  • Laatst online: 22:54
Idd, ik was te snel in 't lezen enzo... :+

https://fgheysels.github.io/


  • Slakkie_S81
  • Registratie: Juli 2002
  • Laatst online: 19-11-2025

Slakkie_S81

dwaas

Edit: IE-only

[ Voor 100% gewijzigd door Slakkie_S81 op 08-10-2003 12:31 ]

hi hi


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 00:21

crisp

Devver

Pixelated

Slakkie_S81 schreef op 08 October 2003 @ 11:51:
Ten eerste: srry voor verneuken van de layout :/

Ik heb ditzelfde probleem ook al eens gehad

kwam toen ergen de volgende oplossing tegen:
[knip]
helaas IE-only :'(

Intentionally left blank


  • Slakkie_S81
  • Registratie: Juli 2002
  • Laatst online: 19-11-2025

Slakkie_S81

dwaas

crisp schreef op 08 October 2003 @ 11:57[/message]:
[...]

helaas IE-only :'(
ja ik weet 't :'(

maar ik zou geen andere manier kunnen verzinnen

hi hi


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 00:21

crisp

Devver

Pixelated

Slakkie_S81 schreef op 08 October 2003 @ 11:59:
[...]


ja ik weet 't :'(

maar ik zou geen andere manier kunnen verzinnen
HTML:
1
<input type="text" onkeypress="checkEnter(event,this)" />

JavaScript:
1
2
3
4
5
6
7
8
9
function checkEnter(e,el) {

  if (typeof e == 'undefined') e = event;
  var key = (typeof e.which == 'undefined')? 0:e.which;
  if (key == 0 && typeof e.keyCode != 'undefined') key = e.keyCode;

  if (key == 13) alert('enter!');

}


:Y)

Intentionally left blank


  • Slakkie_S81
  • Registratie: Juli 2002
  • Laatst online: 19-11-2025

Slakkie_S81

dwaas

nadeel daarvan is wel weer dat het alleen werkt als je focus op dat text-veld zit, de oplossing van mij werkt altijd, ook als je focus niet op het text-veld zit

hi hi


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 00:21

crisp

Devver

Pixelated

Slakkie_S81 schreef op 08 October 2003 @ 12:12:
nadeel daarvan is wel weer dat het alleen werkt als je focus op dat text-veld zit, de oplossing van mij werkt altijd, ook als je focus niet op het text-veld zit
dan zet je de onkeypress toch op het form, of desnoods op de body van je document? door event propagation / bubbling wordt 'ie dan ook getriggered.
het gebruik van document.all kan ik je sowieso ten zeerste afraden - dat document object model is net zo oud als Netscape 4 ;)

Ook kennen oudere versie van mozilla en ws andere browsers de click() method voor buttons niet, je zou wel kunnen afvragen of zo'n button een onclick handler heeft, en die dan aanroepen.

Maar goed, zoals ik al eerder zei ben je sneller af als je gewoon het onsubmit event gebruikt :)

Intentionally left blank


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Waarbij je dan alleen niet meot vergeten om, mocht je de methode van crisp gebruiken, mee te sturen wie (=welke control) submit. :)

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 00:21

crisp

Devver

Pixelated

gorgi_19 schreef op 08 October 2003 @ 12:20:
Waarbij je dan alleen niet meot vergeten om, mocht je de methode van crisp gebruiken, mee te sturen wie (=welke control) submit. :)
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
if (key == 13) {

  // doe stuff

  // cancel event
  if (typeof e.preventDefault != 'undefined') {
    e.preventDefault();
  } else if (typeof e.cancelBubble != 'undefined') {
    if (typeof e.keyCode != 'undefined') e.keyCode = 0;
    e.returnValue = 0;
    e.cancelBubble = true;
  }

  // submit form
  el.form.submit();

}


btw, je kan hier zelfs functietoetsen e.d. mee afvangen :)

[ Voor 7% gewijzigd door crisp op 08-10-2003 12:29 ]

Intentionally left blank


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Ik doelde eigenlijk meer dat je niet blind mag submitten.. :P

Immers, de submitknop ziet er uit als volgt:
HTML:
1
<a id="Login1_submitbutton" class="button" href="javascript:__doPostBack('Login1$submitbutton','')">Log in</a>

En de functie:
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<script language="javascript">
<!--
    function __doPostBack(eventTarget, eventArgument) {
        var theform;
        if (window.navigator.appName.toLowerCase().indexOf("netscape") > -1) {
            theform = document.forms["Form1"];
        }
        else {
            theform = document.Form1;
        }
        theform.__EVENTTARGET.value = eventTarget.split("$").join(":");
        theform.__EVENTARGUMENT.value = eventArgument;
        theform.submit();
    }
// -->
</script>

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 00:21

crisp

Devver

Pixelated

gorgi_19 schreef op 08 October 2003 @ 12:32:
Ik doelde eigenlijk meer dat je niet blind mag submitten.. :P

[...]
waarom die overbodige hide-this-script-from-ancient-browsers dingetjes nou weer?

en dit:
JavaScript:
1
theform = document.forms["Form1"];

werkt net zo goed in IE als in andere browsers, dus de browsercheck is compleet overbodig ;)

Maar goed, het is natuurlijk niet zo moeilijk om dit te combineren allemaal. Persoonlijk ben ik trouwens ook niet zo dol op javascript in href's...

oh ja:
<script type="text/javascript"> :P

[/einde js-opvoeding]

[ Voor 44% gewijzigd door crisp op 08-10-2003 12:40 ]

Intentionally left blank


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

* gorgi_19 verwijst netjes door naar Microsoft.. :P

't is allemaal standaard gegeneerd, waar ik met m'n tengeltjes vanaf moet blijven.. :P Ow ja, ze willen officieel ook HTML 3.2 nog steeds goed blijven ondersteunen. :) Vandaar, denk ik. :)

[ Voor 31% gewijzigd door gorgi_19 op 08-10-2003 12:42 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • alley
  • Registratie: Mei 2002
  • Laatst online: 18-08 20:40

alley

ahuh

code:
1
Page.RegisterHiddenField("__EVENTTARGET", button1.UniqueID)


Zet die is in je pagina's load event (en vervang button1 door de naam van je button uiterard :P)

I am always doing that which I can not do, in order that I may learn how to do it. (Pablo Picasso)


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

* curry684 trapt dit klassieke stukje HTML alsnog maar over de schutting :)

Professionele website nodig?


  • Dennis van der Stelt
  • Registratie: Januari 2000
  • Laatst online: 14:12
Ik heb niet alles gelezen, maar als dit ASP.NET is, dan gaat dat met die enter niet werken. Er is wel ergens op inet een componentje beschikbaar waarmee je wél kunt regelen wat hij hier wil. Geen idee waar je dat moet zoeken, sorry...
Ik zou 's op ASP.NET Forums gaan zoeken. Of dotNetWire.

Doe maar gewoon, dan doe je al gek genoeg.


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 00:21

crisp

Devver

Pixelated

curry684 schreef op 08 October 2003 @ 14:38:
* curry684 trapt dit klassieke stukje HTML alsnog maar over de schutting :)
* crisp vond dit topic veel gepaster in P&W aangezien mensen er daar juist van kunnen leren... :P

Intentionally left blank


  • alley
  • Registratie: Mei 2002
  • Laatst online: 18-08 20:40

alley

ahuh

Huh? Lijkt mij wel ASP.NET hoor, geen HTML maar goed...
Ik heb de ASP.NET oplossing ook al gegeven, werkt prima, maar heb je toch echt ASP.NET voor nodig :D

I am always doing that which I can not do, in order that I may learn how to do it. (Pablo Picasso)


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 00:21

crisp

Devver

Pixelated

alley schreef op 08 oktober 2003 @ 14:51:
Huh? Lijkt mij wel ASP.NET hoor, geen HTML maar goed...
Ik heb de ASP.NET oplossing ook al gegeven, werkt prima, maar heb je toch echt ASP.NET voor nodig :D
HTML is het zeker niet, ik begon gewoon over wat client-side javascript oplossingen (iets wat in dit soort gevallen toch de voorkeur geniet naar mijn mening), en curry684 vatte dat denk ik ietwat te rigoreus op.
Dat je in ASP.NET behoorlijk gelimiteerd bent in de controle over wat er uiteindelijk naar de client gestuurd wordt (of dat je in ieder geval behoorlijk moeite moet doen om daar controle over te krijgen) is een andere discussie. In ieder geval is dat voor mij een reden ver weg te blijven van .NET omdat ik anders alleen maar gefrustreerd zou raken :P

Intentionally left blank


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

crisp schreef op 08 October 2003 @ 15:02:
[...]
HTML is het zeker niet, ik begon gewoon over wat client-side javascript oplossingen (iets wat in dit soort gevallen toch de voorkeur geniet naar mijn mening), en curry684 vatte dat denk ik ietwat te rigoreus op.
Hmmm not to mention 3 topic reports en een aantal directe verwijzingen in-topic. Mag 'm terugtennissen als je wil hoor :)

Professionele website nodig?

Pagina: 1