java script, value counter für mehrere Felder?

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
shwepsi
Mitglied
Beiträge: 1697
Registriert: 02.06.2003 14:37
Wohnort: NRW - immer dem Monitorleuchten folgen...
Kontaktdaten:

java script, value counter für mehrere Felder?

Beitrag von shwepsi »

Hallo,
ich habe Eingabefelder bei denen nur 75 Zeichen eingegeben werden dürfen. Neben der maxlength per html kontrolliere ich das per JS. Die Anzahl der freien Zeichen wird in einem weiteren Eingabefeld angezeigt:

die HTML-Felder:

Code: Alles auswählen

<input type="text" name="event" size="30" class="post" maxlength="75" onKeyUp="laenge()">
<input type="text" name="e_zeichen" size="2" value="75" style="font-size:8px">
das JavaScript:

Code: Alles auswählen

function laenge()
{
	if(document.post.event.value.length >= 75)
	{
		var teil;
		teil = document.post.event.value.substr(0,74);
		document.post.event.value = teil;
		return false;
	}
	else
	{
		var z;
		z = 75 - document.post.event.value.length;
		document.post.e_zeichen.value = z;
	}
}
gibt es eine Möglichkeit das auf 2 weitere Felder auszuweiten, ohne die gesamte Funktion neuzuschreiben?
die Felder wären member/e_member und hp/e_hp

Sorry wegen einer so dämlichen Frage... aber es ist mein erstes JS und ich habe es aus dem Nickpage Mod und bereits selber fehlerkorrigiert
Die Weisheit verfolgte mich sekundenlang...
Aber sie überholte mich und war fortan nicht mehr gesehen !!!
shwepsi
Mitglied
Beiträge: 1697
Registriert: 02.06.2003 14:37
Wohnort: NRW - immer dem Monitorleuchten folgen...
Kontaktdaten:

Beitrag von shwepsi »

*BUMP*
also, hier mal anders formuliert

diese je eine der 3 Funktionen werden je von einer Stelle per onKeyup gestartet, kann man sie irgendwie sinvoll zusammenfassen? mich würde ansich wundern wenn nicht ....

Code: Alles auswählen

function laenge()
{
	if(document.post.event.value.length >= 75)
	{
		var teil;
		teil = document.post.event.value.substr(0,74);
		document.post.event.value = teil;
		return false;
	}
	else
	{
		var z;
		z = 75 - document.post.event.value.length;
		document.post.s_event.value = z;
	}
}

function laenge2()
{
	if(document.post.member.value.length >= 75)
	{
		var teil;
		teil = document.post.member.value.substr(0,74);
		document.post.member.value = teil;
		return false;
	}
	else
	{
		var z;
		z = 75 - document.post.member.value.length;
		document.post.s_member.value = z;
	}
}

function laenge3()
{
	if(document.post.hp.value.length >= 75)
	{
		var teil;
		teil = document.post.hp.value.substr(0,74);
		document.post.hp.value = teil;
		return false;
	}
	else
	{
		var z;
		z = 75 - document.post.hp.value.length;
		document.post.s_hp.value = z;
	}
}
Die Weisheit verfolgte mich sekundenlang...
Aber sie überholte mich und war fortan nicht mehr gesehen !!!
Benutzeravatar
Blutgerinsel
Mitglied
Beiträge: 1801
Registriert: 19.07.2004 18:53
Wohnort: Landkreis Ulm
Kontaktdaten:

Beitrag von Blutgerinsel »

Zu deinem Problem dir mag vielleicht entgangen sein das bei Javascript u.A. ein Objekt elements gibt, welches du dir wie ein Array vorstellen kannst, d.h. alle Form Elemente sind darin enthalten die es im Dokument gibt.

Und im Grunde könntest du diese mittels Schleife durchlaufen lassen den element typ abfragen und dann entsprechen vorgehen.

Code: Alles auswählen

for(counter=0; counter<document.deinforumlarname.elements.length; counter++) {
}
document.deinformularname.elements[counter].name;
document.deinformularname.elements[counter].typ;
document.deinformularname.elements[counter].value;

So kannst du ein einigermaßen Skalierbares Ermittelungstool basteln. Vll. noch ein kleiner Trick auf dem Weg teilweise habe ich schon im name Tag verschiedene Prefix hinzugenommen um verschiedene Felder gleichzubehandeln......

Dazu habe ich slice(); z.B. verwendet um diesen Prefix abzuschneiden und dann zu überprüfen.

Eine andere Idee hab ich im mom nicht sry.

P.S.: Solange mein Account noch besteht werde ich noch ab und zu posten.......
shwepsi
Mitglied
Beiträge: 1697
Registriert: 02.06.2003 14:37
Wohnort: NRW - immer dem Monitorleuchten folgen...
Kontaktdaten:

Beitrag von shwepsi »

danke ... aber da es im ACP vorkommt, und insgsamt ca 20 Eingabefelder hat ... denke ich das die bisherige Lösung wohl die sinnvollste ist ...
da nur 3 Felder auf 75 Zeichen begrenzt werden. Der Rest (Name, Datum, Email, text, etc ... besitzt eigene und logische Begrenzungen)...

wie gesagt, danke und frohe Ostern noch
Die Weisheit verfolgte mich sekundenlang...
Aber sie überholte mich und war fortan nicht mehr gesehen !!!
Antworten

Zurück zu „Coding & Technik“