Zum Inhalt springen

Text area evaluieren

Erstellt am 8. Oktober 2008 · 2 Antworten · letzte Antwort am 8. Oktober 2008

Tags: Frage

JMueller ·

Hallo,

ich habe mit einer eigenen Extension eine "Text area" im Registrierungsformular (sr_feuser_register) eingefügt. Alles klappt bestens. Nun allerdings möchte ich, damit die Datenbank nicht geflutet wird, die Eingabe begrenzen. Am besten wäre, wenn nur soviel eingegeben werden kann so groß wie das Feld ist. Leider erscheinen dann die Scrollbalken und es geht scheinbar unbegrenzt weiter.

Wie kann ich das verhindern, bzw wie kann ich an der Stelle ein Javascript aufrufen?
Folgendes steht in dem HTML-Template schon drin.

<form id="###FORM_NAME###" method="post" action="###FORM_URL###" enctype="multipart/form-data" form_onsubmit="">

Ein ähnliches Problem habe ich auch bei dem Textfeld vom Typo-internen EMailformular. Ich hätte gehofft es gibt eine einfache eval-Regel nur scheinbar ist es nicht der Fall. Hier im Eingabeformular des Forums funktioniert doch auch alles so wunderbar wie ich es bräuchte.

Ich hoffe auf eure Hilfe und Hinweise.
Viele Grüße
J.Mueller

just2b ·

Hallo,

a) flutest du mit einem feld nicht die DB
b) löst js das nicht, weil das dreh ich einfach ab

wenn dann geht das serverseitig, also innerhalb von sr_feuser_register

georg

JMueller ·

Vielen Dank für die schnelle Antwort!

Ich dachte gerade an Javascript. Habe gerade in der feuser_register die Datei jsfunc.updateform.js gefunden und da wollte ich hineinschreiben.

Der Inhalt ist gekürzt:

function updateForm(formId,fieldname,value)	{
	var formObj = document.getElementById(formId);
	if (formObj && formObj[fieldname]) {
		var fObj = formObj[fieldname];
		var type=fObj.type;
		if (!fObj.type)	{
			type="radio";
		}
		switch(type)	{
			case "text":
			case "textarea":
			case "hidden":
			case "password":
				fObj.value = value;
			break;
			case "checkbox":
				fObj.checked = ((value && value!=0) ? "on":"");
			break;
.....

Da wollte ich ungefähr so rangehen:

......
case "textarea":
	maxlimit=200;
	if (fObj.value.length > maxlimit){
		fObj.value = fObj.value.substring(0, maxlimit);
	}else{
		output = maxlimit - fObj.value.length;
	}
case "hidden":
case "password":
....

Könnte das so in Ordnung gehen oder ist der Ansatz komplett falsch?