PDA

Volledige versie bekijken : Enter-toets aan de Submit-knop v.e. html-form koppelen...


gbolssens
%Europe/Berlin %356 %2005, 09:33
Hi allemaal,

Ik zit met een probleem in een HTML-form (heel simpel; 1 <input type="text"> en 1 submit knop)

Als ik iets invul in het input veld en op enter druk, dan zou ik willen dat die druk op de Enter toets de submit-knop triggert. In Firefox werkt dit vanzelf al goed, maar in MS-IE niet.

Ik heb van het internet al eens wat Javascripts geprobeerd, maar heb nog niets gevonden wat goed werkt.

Heeft iemand hier een oplossing voor?


greetz,
GB

SubZero
%Europe/Berlin %367 %2005, 09:48
Nog geen minuutje gezocht op Google: http://www.cs.tut.fi/~jkorpela/forms/enter.html

gbolssens
%Europe/Berlin %381 %2005, 10:09
Nog geen minuutje gezocht op Google: http://www.cs.tut.fi/~jkorpela/forms/enter.html

Bedankt voor je reactie SubZero,

Dat had ik ook al gevonden, maar ik krijg dat dus niet aan de praat.

Bovenaan m'n pagina heb ik het volgende JavaScriptje:

<script type="text/javascript">
function entsub(myform) {
if (window.event && window.event.keyCode == 13)
myform.submit();
else
return true;}
</script>

en dan een stuk verder mijn form:
<form method='POST' name=f action= '<?php $_SERVER[PHP_SELF]; ?>' >
<input type='text' name='zoekterm' onkeypress="return entsub(this.form)"<?php if (isset($_POST['zoekterm'])){echo "value=".stripslashes($_POST['zoekterm']);}?>>
&nbsp;
<input type='submit' name='zoeken' value='Doorzoek de startpagina'>
<br>&nbsp;
<br>
<A HREF="./zoekfunctieHelp.html" target="_blank">
<U>Hulp bij de zoekfunctie.</U></a>
</form>


En dit werkt niet. Wat ik ook vreemd vind, is dat er op de pagina waarnaar SubZero verwijst het volgende staat:
This however would be rather uninteresting, since it would basically work only on IE 4+, which behaves by default the way we prefer here.

Maar het is juist in IE6 dat het NIET werkt :S

Weet iemand wat ik fout doe?

alvast heel vet bedankt voor de reacties

SubZero
%Europe/Berlin %419 %2005, 11:04
Zal er even naar kijken.

SubZero
%Europe/Berlin %426 %2005, 11:13
Het volgende lijkt perfect te werken:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<title>test</title>
<script type="text/javascript">
<![CDATA
function entsub(event,ourform)
{
if (event && event.which == 13)
ourform.submit();
else
return true;
}
]]>
</script>
</head>
<body>

<form method="post" action="index.html">
<p>
Field 1: <input type="text" name="field1" onkeypress="return entsub(event,this.form)" /><br />
Field 2: <input type="text" name="field2" onkeypress="return entsub(event,this.form)" /><br />
<input type="submit" />
</p>
</form>


</body>
</html>
Maar nog één opmerking. De actie wordt pas getriggerd wanneer men in een veld staat, dat is net de bedoeling van het script. Je kan geen form submitten indien je niets hebt aangeklikt, dan is het form uiteraard niet actief.

gbolssens
%Europe/Berlin %461 %2005, 12:04
Hallo,

Ik heb het geprobeerd op jouw manier, maar het werkt nog steeds niet.

Ik begin wel een vaag vermoeden te krijgen dat het te maken heeft met mijn php code.

Ik ga namelijk de pagina opnieuw opbouwen met de zoekresultaten (waarvoor dit formulier dient) weergegeven onder het invulformulier. Hiervoor gebruik ik in php:

<?php
if(isset ($_POST['zoeken'])) // hier zit het 'm, denk ik
{
echo '<tr>';
echo '<td>&nbsp;</td>';
echo '<td>';
...
... //MySQL SELECT's en wat echo's en zo.
...
...
?>

Als ik de waarde van $_POST['zoeken'] echo bovenaan mijn pagina, dan geeft die "1" als er op de button is geklikt, maar niets als er ge-enterd wordt. de call isset($_POST['zoeken']); geeft dan false, en dus wordt de code voor het weergeven van de zoekresultaten niet uitgevoerd.

Weet iemand hiervoor een workaround?

greetz,
GB

melroy89
%Europe/Berlin %834 %2007, 20:01
Het verschil tussen het verzenden van een form met de enter toets en met een button is dat de submit knop niet word mee verzonden.
Al is het mij toch gelukt om via een enter toets een voorbeeld als dit te verzenden via de enter toets:

<?php
if($_POST['verzenden']){
...
}
?>
<input type="submit" name="verzenden" value="verstuur">


EDIT!
Dit geloof je niet maar is echt zo. Je heb minstens 2 input velden nodig om de ENTER toets te laten werken in IE6 (behalve de submit knop dus nog 2).