mysqldumper
-


Hinweise


Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten
Alt 21.01.2008, 20:06   #1
TP-Member
 
Benutzerbild von Ravelli
 
Registriert seit: Sep 2005
Ort: Altenbeken
Ravelli ist auf einem guten Weg

Anzeige restlicher Zeichen bei mehreren Formular-Feldern


Hallo Freunde der Nacht,

ich hoffe, dass Ihr mir bei folgendem Problem helfen könnt:

Derzeit programmiere ich an einem Formular, welches zu jeder TEXTAREA und zu jedem INPUT die verbleibenden Zeichen anzeigen soll. Dazu muss ich den Namen der einzelnen Felder als String an eine JavaScript-Funktion übergeben. Leider klappt das nicht!

Hier der Code der Seite:

Code:
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title></title>
    <script type='text/javascript'>
      //<![CDATA[
        function check(form,maxLength,field)
        {
          len=form.field.value.length;
          if (len>maxLength)
          {
            form.field.value=form.field.value.substring(0,maxLength);
            left=0;
          }
          else {left=maxLength-len;}
          form.len.value=left;
        }
      //]]>
    </script>
  </head>
  <body>
    <form method="" action="">
      <table summary="">
        <tr>
          <td>
            Feld1:
          </td>
          <td>
            <input onkeyup="check(this.form,3,'Feld1')" type="text" name="Feld1" maxlength="3" value="" />
          </td>
          <td>
            <input name="len" value="3" disabled="disabled" size="4" />
          </td>
        </tr>
      </table>
    </form>
  </body>
</html>
Das eigentliche Problem liegt in der Zeile
Code:
len=form.field.value.length;
Wenn ich hier zum testen statt der Variablen 'field' direkt den String 'Feld1' eingebe, wird der Wert für 'len' korrekt berrechnet. Allerdings ist das nicht Sinn der Sache, da das Script für mehrere verschiedene Felder eingesetzt werden soll.

Hat jemand eine Idee? Wenn ja, dann schon mal vielen Dank im Voraus!
Und einen schönen Abend,
Ravelli
Ravelli ist offline   Mit Zitat antworten
Linktipp

Alt 21.01.2008, 20:16   #2
TP-Moderator
 
Benutzerbild von Adromir
 
Registriert seit: Jun 2004
Ort: Hannover
Adromir ist ein richtiges Arbeitstier - DANKEAdromir ist ein richtiges Arbeitstier - DANKEAdromir ist ein richtiges Arbeitstier - DANKEAdromir ist ein richtiges Arbeitstier - DANKEAdromir ist ein richtiges Arbeitstier - DANKEAdromir ist ein richtiges Arbeitstier - DANKE
Gib jedem Feld eine id und benutze getElementById() um das Feld zu bestimmen.
__________________
Je größer der Deppenfaktor, desto gigantischer das Bescheidwissergefühl
-Dieter Nuhr
Adromir ist offline   Mit Zitat antworten
Alt 21.01.2008, 21:20   #3
TP-Member
 
Benutzerbild von Ravelli
 
Registriert seit: Sep 2005
Ort: Altenbeken
Ravelli ist auf einem guten Weg
Hallo Adromir,

vielen Dank für Deine rasche Antwort! Leider habe ich es nicht hin bekommen. Der Verweis vom Skript auf das Feld funktioniert genauso wie zuvor, allerdings ist das eigentliche Problem nicht gelöst - halt das Problem mit der Berechnung von 'len'.

Aber vielleicht meintest Du es ganz anders, daher hier mal der abgewandelte Code:

Code:
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title></title>
    <script type='text/javascript'>
      //<![CDATA[
        function check(form,maxLength,field)
        {
          var temp = document.getElementById(field);
          len=form.temp.value.length;
          if (len>maxLength)
          {
            form.temp.value=form.temp.value.substring(0,maxLength);
            left=0;
          }
          else {left=maxLength-len;}
          form.len.value=left;
        }
      //]]>
    </script>
  </head>
  <body>
    <form method="" action="">
      <table summary="">
        <tr>
          <td>
            Feld1:
          </td>
          <td>
            <input onkeyup="check(this.form,3,'Feld1')" id="Feld1" type="text" name="Feld1" maxlength="3" value="" />
          </td>
          <td>
            <input name="len" value="3" disabled="disabled" size="4" />
          </td>
        </tr>
      </table>
    </form>
  </body>
</html>
Ravelli ist offline   Mit Zitat antworten
Alt 21.01.2008, 23:20   #4
TP-Moderator
 
Benutzerbild von Rizzo
 
Registriert seit: Aug 2004
Ort: Kaiserslautern
Rizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine User
Hier hast Du mal ein funktionierendes Beispiel, vielleicht hilft es Dir ja, wenn Du das mal mit deinem Code vergleichst.
__________________
#.Viele Grüße, Andreas
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
chmod( 'internal.php', 0444 );
Rizzo ist offline   Mit Zitat antworten
Alt 21.01.2008, 23:48   #5
TP-Member
 
Benutzerbild von Ravelli
 
Registriert seit: Sep 2005
Ort: Altenbeken
Ravelli ist auf einem guten Weg
Hallo Rizzo,

vielen Danke für Deine Antwort. Allerdings hilft sie mir auch nicht weiter, da das Beispiel nur das Verarbeiten eines einzelnen Formularfeldes behandelt. Das bekomme ich leicht hin.

Das eigentliche Problem liegt in der Zeile
Code:
len=form.field.value.length;
Das 'field' ist hier ein Objekt, aber an der Stelle muss ein String stehen.
zb. würde diese Zeile korrekt rechnen, wenn ich sie so schreibe:
Code:
len=form.Feld1.value.length;
Allerdings bringt mir das nichts, da ich ja auch Feld2, Feld3, ... FeldX mit dem Skript verarbeiten will.

Das heißt, ich müsste aus dem String-Objekt namens 'field' einen String machen.

Oder?

Gute Nacht,
Ravelli

Geändert von Ravelli (21.01.2008 um 23:58 Uhr).
Ravelli ist offline   Mit Zitat antworten
Alt 22.01.2008, 00:00   #6
TP-Insider
 
Benutzerbild von Cybergreek
 
Registriert seit: Nov 2005
Ort: Köln
Cybergreek hilft, wo's gehtCybergreek hilft, wo's gehtCybergreek hilft, wo's geht
Probier mal folgendes:
HTML-Code:
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title></title>
    <script type='text/javascript'>
      //<![CDATA[
        function check(form,maxLength,field,lenField)
        {
        	var temp = document.getElementById(field);
          len=temp.value.length;
          if (len>maxLength)
          {
            temp.value=form.temp.value.substring(0,maxLength);
            left=0;
          }
          else {left=maxLength-len;}
          myLenField = document.getElementById(lenField);
          myLenField.value=left;
        }
      //]]>
    </script>
  </head>
  <body>
    <form method="" action="">
      <table summary="">
        <tr>
          <td>
            Feld1:
          </td>
          <td>
            <input onkeyup="check(this.form,3,'Feld1','len')" id="Feld1" type="text" name="Feld1" maxlength="3" value="" />
          </td>
          <td>
            <input name="len" id="len" value="3" disabled="disabled" size="4" />
          </td>
        </tr>
        <tr>
          <td>
            Feld1:
          </td>
          <td>
            <input onkeyup="check(this.form,3,'Feld2','len2')" id="Feld2" type="text" name="Feld2" maxlength="3" value="" />
          </td>
          <td>
            <input name="len2" id="len2" value="3" disabled="disabled" size="4" />
          </td>
        </tr>
      </table>
    </form>
  </body>
</html>
__________________
Grüße vom Griechen,
Cybergreek!

WikiDict.de - Das Wiki-Wörterbuch
Cybergreek ist gerade online   Mit Zitat antworten
Alt 22.01.2008, 00:11   #7
TP-Member
 
Benutzerbild von Ravelli
 
Registriert seit: Sep 2005
Ort: Altenbeken
Ravelli ist auf einem guten Weg
Hallo Cybergreek,

das sieht ja prima aus!

Werde mir mal in Ruhe anschauen, warum und wie das funktioniert.

Vielen Dank dafür!!!

Schönen Gruß aus dem Eggegebirge,
Ravelli
Ravelli ist offline   Mit Zitat antworten
Alt 22.01.2008, 00:15   #8
TP-Insider
 
Benutzerbild von Cybergreek
 
Registriert seit: Nov 2005
Ort: Köln
Cybergreek hilft, wo's gehtCybergreek hilft, wo's gehtCybergreek hilft, wo's geht
Zitat:
Zitat von Ravelli Beitrag anzeigen
Werde mir mal in Ruhe anschauen, warum und wie das funktioniert.
Genau der richtige Ansatz

Freut mich, dass es klappt. Viel Spaß damit!
__________________
Grüße vom Griechen,
Cybergreek!

WikiDict.de - Das Wiki-Wörterbuch
Cybergreek ist gerade online   Mit Zitat antworten
Alt 22.01.2008, 12:16   #9
TP-Moderator
 
Benutzerbild von Malleus
 
Registriert seit: Aug 2004
Ort: Homburg / Saarland
Malleus ist ein richtiges Arbeitstier - DANKEMalleus ist ein richtiges Arbeitstier - DANKEMalleus ist ein richtiges Arbeitstier - DANKEMalleus ist ein richtiges Arbeitstier - DANKE
Hallo,

ich hab' mir das ganze nochmal genauer angeschaut und dabei folgendes entdeckt:

PHP-Code:
function check(form,maxLength,field,lenField)
{
      var 
temp document.getElementById(field);
          
len=temp.value.length;
          if (
len>maxLength)
          {
            
temp.value=form.temp.value.substring(0,maxLength);
            
left=0;
          }
          else {
left=maxLength-len;}
          
myLenField document.getElementById(lenField);
          
myLenField.value=left;
        } 
Die "if"-Anweisung ist unnötig, da das Script hier nie hineinspringt. Grund?

PHP-Code:
<input onkeyup="check(this.form,3,'Feld1','len')" id="Feld1" type="text" name="Feld1" maxlength="3" value="" /> 
Das Attribut "maxlength" gibt ja bereits die maximale Anzahl von Zeichen an.
Wäre das Script hineingesprungen. hätte es einen Scriptfehler gegeben:

PHP-Code:
            temp.value=form.temp.value.substring(0,maxLength); 
"temp" ist eine Objectvariable. Diese kannst Du nicht mit "." an das Form-Objekt anschließen. Das "form" muß nur entfernt werden und dann funktioniert es.

Man könnte das ganze auch so implementieren:
PHP-Code:
<html xmlns="http://www.w3.org/1999/xhtml">
  <
head>
    <
title></title>
    <
script type='text/javascript'>
      
//<![CDATA[
        
function checkmyControl )
        {
          var 
numChars myControl.maxLength myControl.value.length;
          
          var 
fieldIndex myControl.getAttribute"name" ).replace( /D/"" );
// Der Replace-Ausdruckt löscht alle "Nicht-Zahlen". Übrig bleibt der Index im Feldnamen.
          
          
document.getElementsByName"Length" fieldIndex )[ ].value numChars;
// Mit Hilfe des Indexes greife ich dann auf das entsprechende "Restanzeige"-Objekt zu.
        
}
      
//]]>
    
</script>
  </head>
  <body>
    <form method="" action="">
      <table summary="">
        <tr>
          <td>
            Feld1:
          </td>
          <td>
            <input onkeyup="check(this)" type="text" name="Feld1" maxlength="3" value="" />
          </td>
          <td>
            <input name="Length1" value="3" disabled="disabled" size="4" />
          </td>
        </tr>
        <tr>
          <td>
            Feld2:
          </td>
          <td>
            <input onkeyup="check(this)" type="text" name="Feld2" maxlength="6" value="" />
          </td>
          <td>
            <input name="Length2" value="6" disabled="disabled" size="4" />
          </td>
        </tr>

      </table>
    </form>
  </body>
</html> 
tschau

Frank

Geändert von Malleus (22.01.2008 um 12:58 Uhr).
Malleus ist offline   Mit Zitat antworten
Alt 22.01.2008, 12:38   #10
TP-Member
 
Benutzerbild von Ravelli
 
Registriert seit: Sep 2005
Ort: Altenbeken
Ravelli ist auf einem guten Weg
Hallo Malleus,

vielen Dank für Deine Mühen! Die if-Anweisung benötige ich für TEXTAREAs, die ich auf z.B. 1000 Zeichen begrenzen möchte. Obiger Code war nur als Beispiel gedacht, um es einfach zu halten. Das ganze kommt nachher in ein Formular mit ca 15 verschiedenen Feldern.

Hier ein Blick auf die Baustelle:
http://www.paderdesign.de/demo.htm

Deinen Code werde ich mir heute Abend mal in Ruhe anschauen. Vielleicht kann ich meinen dann noch etwas abspecken! ;-)

Sonnigen Gruß aus Altenbeken,
Ravelli
Ravelli ist offline   Mit Zitat antworten
Alt 22.01.2008, 12:52   #11
TP-Moderator
 
Benutzerbild von Malleus
 
Registriert seit: Aug 2004
Ort: Homburg / Saarland
Malleus ist ein richtiges Arbeitstier - DANKEMalleus ist ein richtiges Arbeitstier - DANKEMalleus ist ein richtiges Arbeitstier - DANKEMalleus ist ein richtiges Arbeitstier - DANKE
Erwischt! An Textareas hab' ich nicht gedacht.

Trotzdem stellt sich mir die Frage, ob das Script bei Dir mit den Textareas funktioniert hat.

Tschau

Frank

Nachtrag: Hab' gerade auf Deiner Seite gesehen, daß Du's angepaßt hast!
Malleus ist offline   Mit Zitat antworten
Alt 22.01.2008, 12:59   #12
TP-Member
 
Benutzerbild von Ravelli
 
Registriert seit: Sep 2005
Ort: Altenbeken
Ravelli ist auf einem guten Weg
Auf Anhieb hat die if-Anweisung nicht funktioniert. Ich musste sie noch ein wenig anpassen, halt so, wie es Cybergreek auch mit den Script-Zeilen zuvor getan hat.

Die if-Anweisung sieht dann so aus:

Code:
if (len>maxLength)
              {
                temp.value=temp.value.substring(0,maxLength);
                left=0;
              }
Gruß,
Ravelli
Ravelli ist offline   Mit Zitat antworten
Antwort

  Aktuelles Thema
  TP Hilfe Forum > Web-Editoren & Coding > HTML Puristen > Javascript
Anzeige restlicher Zeichen bei mehreren Formular-Feldern Anzeige restlicher Zeichen bei mehreren Formular-Feldern
« JQuery: Alle <option> eines Selects löschen, bis auf den ersten | Hilfe Slideshow mit mehreren Bildern + Text »

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


Alle Zeitangaben in WEZ +2. Es ist jetzt 13:30 Uhr.

Powered by: vBulletin Version 3.7 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd. / Search Engine Friendly URLs by vBSEO 3.2.0 RC7 ©2008, Crawlability, Inc.
Traum-Projekt.com | Suchen | Archiv | Impressum | Kontakt | | | Nach oben |



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67