Du bist nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: WebStyleBoard. Falls dies dein erster Besuch auf dieser Seite ist, lies bitte die Hilfe durch. Dort wird dir die Bedienung dieser Seite näher erläutert. Darüber hinaus solltest du dich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutze das Registrierungsformular, um dich zu registrieren oder informiere dich ausführlich über den Registrierungsvorgang. Falls du dich bereits zu einem früheren Zeitpunkt registriert hast, kannst du dich hier anmelden.

1

Samstag, 16. September 2006, 00:07

Automatisch Zeichen einfügen

Werte WSBler,

eine kurze JavaScript-Frage: Ist es möglich, bei der Eingabe von Text in ein Formular-Feld nach einer bestimmten Anzahl Zeichen ein bestimmtes Zeichen einzufügen?

Konkret geht es um ein Textfeld, in welches ein Datum nach dem Muster TT.MM.JJJJ eingegeben werden muss, und der Benutzer würde gerne den Ziffernblock benutzen, um das Datum "in einem Stück" einzugeben.

Wäre es also möglich, dass man per JavaScript nach den ersten beiden Zeichen (TT) einen Punkt und nach den nächsten beiden Zeichen (MM) erneut einen Punkt einfügen lässt?

Vielen Dank im Voraus!

Lapis

<-- EDIT -->

Nach ein bischen Recherche habe ich mir ein kleines, funktionierendes Script gebastelt:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
<script type="text/javascript">
function DatumTest(Inhalt)
	{
	if (Inhalt.length == 2)
		{
		document.Formular.Datum.value = Inhalt+".";
		}
	if (Inhalt.length == 5)
		{
		document.Formular.Datum.value = Inhalt+".";
		}
	}
</script>


Jetzt bleibt nur noch eine Frage: Wie kann ich die Funktion so ändern, dass ich den Namen des Eingabefeldes mit übergebe, so dass ich diese Funktion auf verschiedene Eingabefelder mit verschiedenen Namen anwenden kann...

Oder bin ich gezwungen, für jedes Eingabefeld mit einem anderen Namen eine Kopie der Funktion anzulegen'?

Greetings

Lapis
Signatur von »LapisInfernalis« Eine Milde Gabe...

Der Horizont vieler Menschen ist ein Kreis mit dem Radius Null - und das nennen sie ihren Standpunkt.

Albert Einstein (1879-1955)

A common mistake people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools.
Douglas Adams (1952-2001)

2

Samstag, 16. September 2006, 02:37

fals du noch Langeweile hast ... sacht der so zu mir ... ;)

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<script type="text/javascript">

function DatumTest(form,Inhalt)
	{
  var form;
    if (Inhalt.length == 2)
		{
		form.value = Inhalt+".";
		}
	if (Inhalt.length == 5)
		{
		form.value = Inhalt+".";
		}
	}
</script>


Quellcode

1
2
3
4
5
6
7
<form action="test" method="post" name="Formular">
<input type="text" name="feld" value="" onkeyup="DatumTest(this.form.feld,this.value);" />
</form>

<form action="test1" method="post" name="Formular2">
<input type="text" name="feld1" value="" onkeyup="DatumTest(this.form.feld1,this.value);" />
</form>


der "Trick" ist einfach, das betreffende Formfeld an die Funktion mit zu übergeben ;)

Quellcode

1
onkeyup="DatumTest(this.form.{name-des-betreffenden-textfeldes},this.value);


fals du langeweile hast ... paah ... aber ich muss mir mal nen Eis braten und anmerken, was ich so um diese Uhrzeit noch gepeilt kriege ...
:hupferl:HULDIGT MIR IHR WÜRMER, DENN ICH BIN TOTAL 1337!!! :hupferl:
Signatur von »TheNobody Style«

3

Samstag, 16. September 2006, 10:33

[q=TNS]HULDIGT MIR IHR WÜRMER, DENN ICH BIN TOTAL 1337!!![/q]
Vielleicht sollten wir noch einen Smiley hinzufügen... :D

Klappt super! Danke! Aber eine kleine Anmerkung habe ich:

[q=TNS]der "Trick" ist einfach, das betreffende Formfeld an die Funktion mit zu übergeben[/q]
Jupp, das stimmt. In Deinem Beispiel übergibst Du aber die Action-Anweisung der Formulare... :tongue: ;)
Signatur von »LapisInfernalis« Eine Milde Gabe...

Der Horizont vieler Menschen ist ein Kreis mit dem Radius Null - und das nennen sie ihren Standpunkt.

Albert Einstein (1879-1955)

A common mistake people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools.
Douglas Adams (1952-2001)

4

Samstag, 16. September 2006, 10:34

Probleme wird es geben wenn der User das Datum ohne ergänzende "0" eingibt:

01052006 = 01.05.2006
152006 = 15.20.06

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »streifenkiste« (16. September 2006, 10:34)


5

Samstag, 16. September 2006, 10:36

[q=streifenkiste]Probleme wird es geben wenn der User das Datum ohne ergänzende "0" eingibt:[/q]
Das ist prinzipiell richtig, aber der betreffende User wird darauf hingewiesen, dass das Datum im Format TT.MM.JJJJ anzugeben ist, was beim Absenden des Formulares überrpüft wird... ;)
Signatur von »LapisInfernalis« Eine Milde Gabe...

Der Horizont vieler Menschen ist ein Kreis mit dem Radius Null - und das nennen sie ihren Standpunkt.

Albert Einstein (1879-1955)

A common mistake people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools.
Douglas Adams (1952-2001)

6

Samstag, 16. September 2006, 12:55

Hi,
ich würde das anders lösen: drei Eingabefelder für jeweils zwei Ziffern. Je nachdem, welche Daten eingegeben werden sollen, mit Vorbelegung des Jahres und vielleicht auch des aktuellen Monats. Nach Eingabe des zweiten Zeichens würde ich dann eine Funktion aufrufen, die die Gültigkeit der Angabe prüft und dann den Focus auf das nächste Feld setzt.
In der Formularauswertung kann dann hieraus ein vollständiges Datum generiert werden.

Eine solche Funktion dürften viele User auch von verschiedenen Anwendungsprogrammen kennen, die Felder in der Art [ ].[ ].[ ] beinhalten.
Gruß
Ingo

7

Samstag, 16. September 2006, 13:04

Der Ansatz ist mit Sicherheit nicht schlecht, aber ehrlich gesagt ist mir der Aufwand zu groß. Ich bleibe lieber bei einem Eingabefeld pro Datum. Die Validität des Datums wird ohnehin serverseitig gelöst und da es sich um recht umfangreiche Formulare handelt, bin ich mit der aktuellen Lösung in meinem Fall besser bedient...

Dennoch Danke für die Anregung! ;)

Lapis
Signatur von »LapisInfernalis« Eine Milde Gabe...

Der Horizont vieler Menschen ist ein Kreis mit dem Radius Null - und das nennen sie ihren Standpunkt.

Albert Einstein (1879-1955)

A common mistake people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools.
Douglas Adams (1952-2001)