javascript functie

  • Onderwerp starter Onderwerp starter yeko
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

yeko

Gebruiker
Lid geworden
4 mrt 2008
Berichten
25
Code:
[HTML]
<head>
<script type="text/javascript">
function next(form)
{
  if (form.substr(2,1) > 0)
  {
    if (form.substr(2,1) < 6)
    {
    window.location.href=("/country.php?id=" + form.substr(2,1));
    }
  }
    alert("country.php?id=" + form.substr(2,1));
}
</script>
</head>

[/HTML]

<?php
  echo '<form name=go method=get>';
  echo '<center>';
  echo '<input type=text size=3 name=id MAXLENGTH=3>';
  echo '<input type=submit name=submit value=go onClick=next(go.id.value);>';
  echo '</center>';
  echo '</form></td></tr>';
?>

In het inputveldje id word een speciaal soort id ingeven Bv 1.3 of 1.4. Als men op de knop go klikt word er naar de functie gegaan en wordt de laatste letter eruit gehaald. Dus als je 1.4 intikt blijft alleen de 4 nog over. Dan wordt er gecontroleerd of of het getal tussen 0 en 5 ligt. Dan moet hij de client doosturen naar de webpagina country.php?id=4 (in dit geval).

Dit doet hij perfect.
Maar als ik die alert regel weghaal doet hij het niet meer. Dan gaat hij in firefox naar
country.php?id=1.4&submit=go en in internetexplorer naar country.php?id=1.4 ?

Hoe komt dit en heeft iemand hier een oplossing voor ?
 
Laatst bewerkt:
om te beginnen moet je quotes om alle waardes zetten van html atributen. Dus niet name=go maar name="go"

Verder moet je de <input type="submit"> vervangen door een <input type="button"> anders wordt het formulier verstuurd en wordt dus de verkeerde pagina geladen. Als je dat hebt gedaan werkt het waarschijnlijk.
 
Laatst bewerkt:
Beste

Hartelijk dank voor je hulp. Het werkt idd nu ik er een button van gemaakt heb.
Maar nu treed er een ander probleempje op.
Als ik op de knop druk werkt het perfect maar als ik nu op enter druk dan werkt het weer niet meer. Komt dit door het formulier ?

MVG
Yeko
 
Dit is mijn code

HTML:
<script type="text/javascript">

function entsub(event,ourform)
{
if (event && event.which == 13)
goan(ourform);
}



function goan(form)
{
  if (form.substr(2,1) > 0)
  {
    if (form.substr(2,1) < 6)
    {
    window.location.href=("country.php?id=" + form.substr(2,1));
    }
  }
  verander.id.value = ""
}

</script>
Code:
<?php
echo "<table width=90% border=0 cellspacing=0 cellpadding=3 align=center>";
echo '<tr><td colspan=4>';
  echo '<form name="verander">';
  echo '<center>';
  echo '<input type="text" size="3" name="id" MAXLENGTH="3" onkeypress="return entsub(event,verander.id.value)">';
  echo '&nbsp;&nbsp;';
  echo '<input type="button" name="submit" value="go" onclick="goan(verander.id.value); return false;">';
  echo '</center>';
  echo '</form></td></tr></table>';

?>


Kan iemand mij helpen aub ?
 
dat komt doordat onclick echt een muisklik is. Je kunt alle onkeydown voor het formulier (niet de button) implementeren, controleren of de key een enter was en als dat inderdaad zo was je functie roepen.

Je kunt deze code onder het forumlier in de broncode zetten. Niet getest, maar het zou moeten werken.
Code:
<script type="text/javascript">
verander.onkeydown = function (event)
{
  if (!event) event = window.event // IE
  var keyCode = -1;

  if (typeof(event.keyCode) != "undefined") // IE
  {
    keyCode = event.keyCode
  }
  else if (typeof(event.which))
  {
    keyCode = event.which
  }

  if (keyCode == 13)
    goan(verander.id.value);
}
</script>
 
Bedankt

Beste

Bedankt voor je snelle reactie.
Ik zal het direct eens gaan uitproberen.

mvg
Yeko
 
Beste

Het werkt spijtig genoeg nog altijd niet. Als ik op enter druk dan gaat hij wel naar country.php?id= maar hij vult dan de id niet meer in. Ik snap er niets meer van want hij geeft de waarde wel door in de functie maar het komt er niet achter ?

MVG
Yeko
 
Dit lijkt te werken: :)
PHP:
<script type="text/javascript">
 function next(form) {
  var n = parseInt(form.id.value.substr(2,1));
  if (0 < n && n < 6) {
   form.action = '/country.php?id=' + n;
   return true;
   };
  return false;
  };
</script>


<form action="" method="post" onsubmit="return next(this)">
 <center>
 <input type="text" size="3" name="id" maxlength="3">
 <input type="submit" value="go">
 </center>
</form>
Als je method="get" gebruikt zou alsnog ?naam=waarde (van het formulier) opgestuurd worden.

Om het offline te testen kun je country.html gebruiken. :)


Vr.Gr. Egel.
 
Beste

Hartelijk dank. Het werkt perfect !!

MVG
Yeko
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan