eingabefeld mit punkten trennen

Status
Nicht offen für weitere Antworten.

romu

Mitglied
Guten morgen alle zusammen.

Ist es möglich , eine eingabemaske zu erzeugen die durch punkte getrennt ist ?

ich stelle mir das ungefähr so vor:

123.234.345.789

Die Ziffern sollen eingegeben werden, die punkte sollen schon da stehen. (so wie eine serial die man bei einem programm eingibt).
Wenn die ersten 3 ziffern eingegeben sind, soll er gleich über den punkt springen damit ich die nächsten ziffern eingeben kann.

Geht so etwas mit html bzw. php?

Grüße

romu
 
Hallo.

Schöne Frage die du da gestellt hast, endlich mal eine gelungene andere JavaScript Frage.
Also ich sage mal gleich ganz deutlich das PHP dazu überhaupt nicht geeignet ist , quasi alle Serverseitigen Scripte. JavaScript ist da klar im Vorteil.

Zu deiner Problemstellung :

So einfach ist das nicht getahn mit den Punkten und Inputs. Da muss man etwas improvisieren:

Hier der Code:

Code:
<html>
<head>
<title>IP Adresse</title>
<style type="text/css">
input.inputs{
	border:0px solid #ffffff;
	height:22px;
	font-family:Verdana;
	font-size: 14px;
	width:30px;
}



</style>
<script language="JavaScript" type="text/javascript">
var thisInput	= new Array();
thisInput.push("IP1","IP2","IP3","IP4")
var IP	="";
function getIP()
	{
		IP="";
		for(i=0;i<thisInput.length;i++)
			{
				var SelItem	= thisInput[i];
				if(document.getElementById(SelItem)!=null && document.getElementById(SelItem).value!=="")
					{
						if(SelItem!==thisInput[thisInput.length-1])
							{
								var ZmObj	=	" . ";
							}
						else
							{
								var	ZmObj	=	"";
							}
						IP+=document.getElementById(SelItem).value + ZmObj;
					}
			}
	
		document.getElementById("createIP").innerHTML=IP;
	}


function checkValues(ObjID)
	{
		var thisValue	=	document.getElementById(ObjID).value;
		if(thisValue.length == 3)
			{
				var ObjT	= ObjID.split("IP");
				var ObjZ	=ObjT[1];
				ObjZ++;
				//alert(ObjZ);
				document.getElementById("IP" + ObjZ).focus();
			}	
		getIP();
		
	}


</script>
</head>
<body>
<table cellpadding="0" cellspacing="0" border="0" width="200" height="26">
  <tbody>
		<tr>
			
      <td width="200" style="border:1px solid #cccccc;font-family:verdana;font-size:14px" height="26" valign="middle"> 
        <input type="text" name="IP1" id="IP1" size="3" maxlength="3" onKeyUp="checkValues('IP1');" class="inputs"> . 
				<input type="text" name="IP2" id="IP2" size="3" maxlength="3" onKeyUp="checkValues('IP2');" class="inputs"> . 
				<input type="text" name="IP3" id="IP3" size="3" maxlength="3" onKeyUp="checkValues('IP3');" class="inputs"> . 
				<input type="text" name="IP4" id="IP4" size="3" maxlength="3" class="inputs" onKeyUp="checkValues('IP3');">
        IP </td>
		</tr>
	</tbody>
</table>
<table cellpadding="0" cellspacing="0" border="0" width="200">
	<tbody>
		<tr>
			<td width="75" style="border:1px solid #cccccc;font-family:verdana;font-size:12px">
			Deine IP:
			</td>
			<td width="125" id="createIP">
			
			
			</td>
		</tr>
	</tbody>
</table>

</body>
</html>

In diesem Sinne
 
Original geschrieben von Krypthonas
Also ich sage mal gleich ganz deutlich das PHP dazu überhaupt nicht geeignet ist , quasi alle Serverseitigen Scripte.

Gut, sicherlich geht das mit PHP nichrt clientseitig, streite ich nicht ab, aber das man sowas mit PHP überhaupt nicht realisieren kann dementiere ich. Es gibt doch Funtionen, die Zeichen in einem String (Eingabe wird ja zu STring) abzählen und nach dem Zeichen ein Zeichen einfügen. Hab jetzt zwar nicht die entsprechende Funtion im Kopf, aber eine andere Möglichkiet wäre ja auch, statt des Punktes ein Leerzeichen zu setzen und dieses dann mit ereg_replace() oder str_replace() ersetzen.

In dem Falle kommt es ganz drauf an, was er mit der Eingabe bewirken will. Wäre vielleicht hilfreich das zu wissen, da man sich ja dadúrch möglicherweise eine Menge Schreibarbeit ersparen kann. ;)
 
Ich glaube du verstehst den Sinn und Zweck nicht, welcher romu bezwecken will.

Willst du mir allen ernstes erzählen das du bei jedem onkeydown das Formular Senden willst, damit die Seite bzw. den IFrame neu lädt. Ey wo lebst du?

Dementieren brauchst du hier auch nichts, denn hier wurde PHP nicht dazu negiert, dass er es nicht kann sondern extrem ungeeignet ist.

Serverseitige Scriptsprachen sollte man nur zur Realisierung der Struktur, Sicherheit sowie Ausgabe verwenden. Den Rest, also die Benutzer Seitigen(Client) User Controlls lässt man den Client Scripten ala JS. So einfach ist das.

In diesem Sinne
 
Hui, das ist ja ein Hammerscript. Würde es nicht einfacher gehen, wenn man einfach vier input-Felder nimmt und diese jeweils durch einen Punkt trennt? Zusammenfügen kann man sie ja dann serverseitig.
 
Status
Nicht offen für weitere Antworten.
Zurück