automatischer focuswechsel

Fuma15

Mitglied
Hi Leute

ich brauch mal eure Hilfe ich sitze grad irgendwei fest.
Sollte eigentlich kein großes Ding sein aber ich finde einfach keine Lösungen.

Ich habe ein Formular wo Datumsangaben eingetragen werden sollen.
Dies wurde unterteilt in 3 Inputfeldern für Tag, Monat und Jahr
Jetzt möchte ich gerne einen automatischen Fokuswechsel sobald die maximale Anzahl an Zeichen in das Inputfeld eingetragen wurde.

hier das Skript um das es geht

PHP:
<form id="termin" method="post" action="<?php $PHP_SELF ?>">
	<?php

	if(isset($_POST['next'])){
		if(is_numeric($_POST['anz_tage'])){
			if(date('L')){
				$tage=357;
			}else{
				$tage=356;
			}
			if($_POST['anz_tage']>$tage){
				echo "	<label>Bitte geben Sie f&uuml;r die Tage die gew&uuml;nschten Daten ein.</label><br />
				<input name=\"anz_tage\" type=\"hidden\" value=\"".$_POST['anz_tage']."\" /><br />";
				
				echo "<div id=\"datum\">";
				
				for($i=1; $i<=$_POST['anz_tage']; $i++){
					echo "	<input class=\"short\" name=\"day$i\" type=\"text\" maxlength=\"2\" />
							<input class=\"short\" name=\"month$i\" type=\"text\" maxlength=\"2\" 
							<input class=\"long\" name=\"year$i\" type=\"text\" maxlength=\"4\" /><br />/>";
				}
				if($_POST['anz_tage']>1){
					echo "<input class=\"submit\" type=\"submit\" name=\"submit\" value=\"Termine eintragen\" />";	
					echo "</div>";
				}else{
					echo "<input class=\"submit\" type=\"submit\" name=\"submit\" value=\"Termin eintragen\" />";
					echo "</div>";
				}
				
				if(isset($_POST['submit'])){
					
				}
			}else{
				echo "	<label>Bitte die Anzahl der firmeninternen Feiertage angeben!</label>
							<input class=\"short\" name=\"anz_tage\" type=\"text\" size=\"2px\" maxlength=\"3\"/><br />
							<span class=\"error\">Dieses Jahr hat nur $tage Tage!</span>
							<input class=\"submit\" type=\"submit\" name=\"next\" value=\"Weiter\" />";		
			}
		}else{
			echo "	<label>Bitte die Anzahl der firmeninternen Feiertage angeben!</label>
					<input class=\"short\" name=\"anz_tage\" type=\"text\" size=\"2px\" maxlength=\"3\"/><br />
					<span class=\"error\">Es d&uuml;rfen nur Zahlen eingegeben werden!</span>
					<input class=\"submit\" type=\"submit\" name=\"next\" value=\"Weiter\" />";	
		}
	}else{
		echo "	<label>Bitte die Anzahl der firmeninternen Feiertage angeben!</label>
				<input class=\"short\" name=\"anz_tage\" type=\"text\" size=\"2px\" maxlength=\"3\"/><br />
				<input class=\"submit\" type=\"submit\" name=\"next\" value=\"Weiter\" />";	
	}
	?>
</form>

wie schon gesagt sollte eigentlich recht einfach sein aber da irre ich mich sicher ^^''

Danke schonmal für eure Hilfe

MFG Fuma15
 
Das geht mit JavaScript nicht mit PHP, falls ich dich richtig verstanden habe? :p

Du wilslt also bei den Feldern:
Code:
  <input class="short" name="day$i" type="text" maxlength="2" />
  <input class="short" name="month$i" type="text" maxlength="2" /> 
  <input class="long"  name="year$i" type="text" maxlength="4" /><br />

Das wenn bei day 2 Zeichen eingegeben wurden, automatisch der mauszeiger in month wechselt?
 
Zuletzt bearbeitet:
Jab genau so möchte ich das haben
und das selbe natürlich bei month in year
 
Zuletzt bearbeitet:
So, hat etwas länger gedauert musste noch was anderes erledigen, aber sollte nun so mehr oder weniger klappen.
Ich sag gleich: ist denk ich ma net die beste Lösung, aber mir ist im Moment nichts eingefallen, wie man das sonst machen könnte ...

Du musst das ganze natürlich noch in dein PHP script einbaun, und bei den inputs die id etc ändern (jetzt z.b.: day_2, sollte aber dann day_$i oder so heissen).

HTML:
<script language="javascript">
<!--
var array = new Array();
var hits  = new Array();

function Next(id, length)
{
  var obj = document.getElementById(id);
  if(obj)
  {
    if(array.contains(obj))
	{
	  hits[obj]++;
	  if(hits[obj]%length == 0)
	  {
		hits[obj] = 1;
	    obj.focus();
	  }
	}
	else
	{
	  array.push(obj);
	  hits[obj] = 0;
	}
  }
  else
  {
    return false;
  }
}
Array.prototype.contains = function (element)
{
  for(var i = 0; i < this.length; ++i) 
  {
    if(this[i] == element) 
	  {
      return true;
    }
  }
  return false;
}
-->
</script>
<form name="form" method="post" enctype="application/x-www-form-urlencoded">
  <input class="short" id="day_2"   name="day_2"   type="text" maxlength="2" onkeydown="Next('month_2', 2);" />
  <input class="short" id="month_2" name="month_2" type="text" maxlength="2" onkeydown="Next('year_2',  2);" /> 
  <input class="long"  id="year_2"  name="year_2"  type="text" maxlength="4" onkeydown="Next('day_2',   4);" />
  <br />
</form>
 
danke sehr für das skript ich werds in nächster zeit mal einbinden ^^

macht nichts das es etwas länger gedauert hat ich hab genug noch anderes an dem skript zu tun gehabt die das nicht zwingend benötigt haben ^^

danke nochmal vielmals

MFG Fuma15
 

Neue Beiträge

Zurück