Eine Funktion mehrmals nutzen

kaiderunwissende

Grünschnabel
Hallo Leute,

da ich hier schomal so schnelle und kompetente Hilfe erfahren habe, wende ich mich erneut an euch....

In unten per Code dargestellter Seite möchte ich dem Benutzer zeigen, wieviele Zeichen er noch frei hat, die Funktion habe ich bei einem Abmahn-Provider gemopst und ein wenig angepasst. Der Einfachheit halber hier zu Ansicht:
Ansicht der unten gecodeten Seite

Mein Problem ist, dass ich mehrere Felder habe.
So, jetzt aber endlich zu Frage: Ich möchte in der Funktion gerne den Wert an denjenigen Counter ausgeben, der direkt neben dem Eingabefeld liegt.

Gehe ich recht in der Annahme, dass so etwas mit GetElemetById machbar ist? Wenn ja, bitte zeigen. Bin noch nicht *wirklich* fit ;-)

Vielen Dank schonmal!

Kai

Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Strict//EN">
<html>
<head>
<title>Eingabeformular</title>
<style type="text/css">
<!--
 form
   { padding:20px; border:6px dotted #DDDDDD; }
/* td, input, select, textarea
   { font-size:13px; font-family:Verdana,sans-serif; font-weight:normal; }*/
  textarea, input, p, div
   { font-size:10pt; font-family:Verdana,sans-serif; font-weight:normal; }
  input, select, textarea
   { color:#0000CC; }
 .Bereich, .Feld
   { background-color:#FFFFAA; border:6px solid #DDDDDD; }
 .Auswahl
   { background-color:#DDFFFF;border:6px solid #DDDDDD; }
 .Check, .Radio
   { background-color:#DDFFFF; border:1px solid #DDDDDD; }
 .Button
   { background-color:#AAAAAA; color:#FFFFFF; border:6px solid #DDDDDD; }
-->
</style>
<script language="javascript">


var montagchange = true;
var maximumLength = 250;
function leftchar(objekt) {

    if (objekt.value.length > maximumLength) {
    objekt.value = objekt.value.substring(0,250);
      left = 0;
    }
    else {
      left = maximumLength - objekt.value.length;
    }

    document.menues.countermo.value = left;
}

</script>




</head>
<body bgcolor="5EA5E1">
<h3>Eingabe</h3>


<form action="speichern.php" name="menues">

<p>
<table cellspacing="2" cellpadding="2" border="0" width="100%">
<tr>
    <td valign="top" width="20%">
		<input type="text" name="namemo" value="Montag," size="10" maxlength="10">
		<input type="text" name="datemo" value="26.05." size="6" maxlength="6">
		<br><input type="text" name="descmo" value="" size="20" maxlength="20" title="optionaler Name des Tages, z.B. Pfingstmontag">
	</td>
	
    <td colspan="2">
		<textarea id="test" cols="50" rows="5" name="menuemo" onKeyUp="leftchar(this)" >Hier das Menue eintragen...</textarea>
	</td>
	
    <td valign="bottom">
		Noch <input type="text" name="countermo" size=2 value="250"><br>Zeichen &uuml;brig!</td>
</tr>
<tr>
    <td></td>
    <td colspan="2">
		<input type="text" name="dessmo" value="...und hier das Dessert" size="30" maxlength="30"></td>
    <td></td>
</tr>
<tr>
    <td></td>
    <td>
		<input type="Checkbox" name="zusatz1mo">enth&auml;lt S&uuml;&szlig;stoff
		<br><input type="Checkbox" name="zusatz2mo">enth&auml;lt Farbstoffe
		<br><input type="Checkbox" name="zusatz3mo">enth&auml;lt Aromastoffe
	</td>
    
	<td>
		<input type="Checkbox" name="zusatz4mo">enth&auml;lt Konservierungsstoffe
		<br><input type="Checkbox" name="zusatz5mo">enth&auml;lt Nitrit
		<br><input type="Checkbox" name="zusatz6mo">enth&auml;lt Natriumglutamat</td>
    <td></td>
</tr>

<tr><td colspan="4"><hr color="black" size="2"></td></tr>




<tr>
    <td valign="top" width="20%">
		<input type="text" name="namedi" value="Dienstag," size="10" maxlength="10">
		<input type="text" name="datedi" value="26.05." size="6" maxlength="6">
		<br><input type="text" name="descdi" value="" size="20" maxlength="20" title="optionaler Name des Tages, z.B. Pfingstdienstag">
	</td>
	
    <td colspan="2">
		<textarea id="test" cols="50" rows="5" name="menuedi" onKeyUp="leftchar(this)" >Hier das Menue eintragen...</textarea>
	</td>
	
    <td valign="bottom">
		Noch <input type="text" name="counterdi" size=2 value="250"><br>Zeichen &uuml;brig!</td>
</tr>
<tr>
    <td></td>
    <td colspan="2">
		<input type="text" name="dessdi" value="...und hier das Dessert" size="30" maxlength="30"></td>
    <td></td>
</tr>
<tr>
    <td></td>
    <td>
		<input type="Checkbox" name="zusatz1di">enth&auml;lt S&uuml;&szlig;stoff
		<br><input type="Checkbox" name="zusatz2di">enth&auml;lt Farbstoffe
		<br><input type="Checkbox" name="zusatz3di">enth&auml;lt Aromastoffe
	</td>
    
	<td>
		<input type="Checkbox" name="zusatz4di">enth&auml;lt Konservierungsstoffe
		<br><input type="Checkbox" name="zusatz5di">enth&auml;lt Nitrit
		<br><input type="Checkbox" name="zusatz6di">enth&auml;lt Natriumglutamat</td>
    <td></td>
</tr>

<tr><td colspan="4"><hr color="black" size="2"></td></tr>
</table>


<input type="Submit" value="Speichern und im Internet bereitstellen!" class="Button">
</form>
</body>
</html>
 
Zuletzt bearbeitet:
Hi,

da der Funktion ja schon das Objekt übergeben wird, in dem gerade getippt wird, ist es keine Problem, ihr auch noch das Ausgabeobjekt zu übergeben:
PHP:
function leftchar(objekt, outputfield) {

    if (objekt.value.length > maximumLength) {
    objekt.value = objekt.value.substring(0,250);
      left = 0;
    }
    else {
      left = maximumLength - objekt.value.length;
    }

    outputfield.value = left;
}

Mit getElementById geht es notmalerweise noch "sicherer":
PHP:
  document.getElementById(outputfield).value = left;
Der Aufruf übergibt das Textfeld jeweils an die Funktion:
PHP:
onKeyUp="leftchar(this, countermo)"
Bei der Variante mit getElementById sollte hier aber der Name als String übergeben werden:
PHP:
onKeyUp="leftchar(this, "countermo")"

Ich hoffe, das war jetzt nicht zu chaotisch.

Gruß
 
Schähänk ju!

Habs jetzt so:

PHP:
function leftchar(objekt, outputfield) {

    if (objekt.value.length > maximumLength) {
    objekt.value = objekt.value.substring(0,250);
      left = 0;
    }
    else {
      left = maximumLength - objekt.value.length;
    }

   document.getElementById(outputfield).value = left;
}

und so:

PHP:
onKeyUp="leftchar(this, 'countermo')"

gelöst.
Dabei ergab sich das beliebte Problem "Einfache oder doppelte Anführungszeichen?" Ich hab deine doppelten mal durch ein Hochkomma ersetzt. Jetzt funktionierts. :-)


Ich hoffe, das war jetzt nicht zu chaotisch.

--> Nö, ich habs begriffen!


Vielen herzlichen Dank, das werde ich wohl bei sehr vielen Seiten jetzt nacharbeiten :endlichklarseh,wiedasprinzipfunktioniert:

Schönen Abend noch

Gruß
Kai
 

Neue Beiträge

Zurück