Zeilenzahl in Textarea begrenzen

Dieses Thema im Forum "Web-Know-how für die Homepage" wurde erstellt von WolfgangNMS, 10. September 2001.

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. WolfgangNMS

    WolfgangNMS Byte

    Registriert seit:
    27. Mai 2001
    Beiträge:
    10
    Hi,
    habe ein kleines Problem.
    Ich benutze ein Formular mit mehreren einzeiligen Textfeldern, die ich durch maxlength begrenze. Das klappt auch wunderbar, mein Problem ist ein zusätzliches mehrzeiliges Textfeld. Durch <textarea rows="10" ...> kann ich zwar das Eingabefeld in der Größe definieren, ich würde aber auch gerne die maximal mögliche Zeilenzahl begrenzen. Ich hoffe, es kann mir einer weiterhelfen.

    Danke im vorraus
    Wolfgang
     
  2. WolfgangNMS

    WolfgangNMS Byte

    Registriert seit:
    27. Mai 2001
    Beiträge:
    10
    scrollHeight\' einer Textarea.

    Grüsse von Wolfgang
     
  3. kalweit

    kalweit Hüter der Glaskugel

    Registriert seit:
    18. April 2000
    Beiträge:
    31.469
    Bei Netscape muss die <textarea> in einem <form> gekapselt werden, dann kannst du auf den Inhalt über: document.formname.variablenname.value zugreifen und auch dort z.b. die Zeichenlänge bestimmen und entsprechend ändern. Diese Variante funktioniert ebenfalls im IE und Opera.

    Gruss, Matthias
     
  4. WolfgangNMS

    WolfgangNMS Byte

    Registriert seit:
    27. Mai 2001
    Beiträge:
    10
    Hi,
    habe mir mittlerweile was zurechtgebastelt. Leider funzt das nur im IE. Hat vielleicht jemand einen Tip für NN ? Hier der Code:

    <html>
    <head>
    <title>Gästebuch - Neuer Eintrag</title>
    <link rel="STYLESHEET" type="text/css" href="style.css">
    <script language="JavaScript">

    function teste()
    {while(document.newentry.ftext.clientHeight < document.newentry.ftext.scrollHeight)
    {document.newentry.ftext.value = document.newentry.ftext.value.substring(0,document.newentry.ftext.value.length-1);
    }
    }
    </script>

    </head>
    <body bgcolor="#ffcc99" LINK="#0000ff" VLINK="#0000ff" ALINK="#ff0000">
    .................
    <textarea name="ftext" wrap="physical" rows="14" cols="40" OnFocus="teste();" OnClick="teste();" OnChange="teste();" OnKeyDown="teste();" OnKeyUp="teste();"></textarea>
    ..................

    mfG
    Wolfgang
     
  5. BTB

    BTB Byte

    Registriert seit:
    22. Januar 2002
    Beiträge:
    13
    Hi,
    der code sieht folgendermaßen aus:
    <textarea name="wasweissich" rows="10" cols="30"></textarea>

    bidde schön
     
  6. kalweit

    kalweit Hüter der Glaskugel

    Registriert seit:
    18. April 2000
    Beiträge:
    31.469
    Per HTML ist mir nicht\'s bekannt - du kannst aber das Textfeld per Javascript (Eventhandler) auf seine tatsächliche Länge testen und eine entsprechende Meldung ausgeben bzw. bei Eingabe eines weiteren Zeichens, dieses wieder automatisch löschen - wobei sich aber bei dieser Aktion die Sinnfrage stellt.

    Gruss, Matthias
     
  7. Antiheld

    Antiheld ROM

    Registriert seit:
    6. Dezember 2001
    Beiträge:
    5
    Hi,
    bei einer textarea ist eine Beschränkung per html nicht möglich. Das funktioniert nur bei einzeiligen Textfeldern. Auch eine Beschränkung per rows= und cols= bringt nichts, da diese Angaben lediglich die Anzeigegröße des Eingabreichs, nicht die Länge des Textes beschränken. Theoretisch ist die Textlänge bei textarea unbegrenzt.
    Man könnte natürlich überlegen, die Länge des eingegebenen Textes per Javascript prüfen zu lassen und eventl. eine Fehlermeldung heraus zu geben.....

    mfg
     
  8. kalweit

    kalweit Hüter der Glaskugel

    Registriert seit:
    18. April 2000
    Beiträge:
    31.469
    Hmmm,

    also, ich würd warscheinlich folgende Lösung nehmen: Schreibe einfach in die Eingabeseite, dass dein Besucher nur xxx Zeichen eingeben kann und die restlichen abgeschnitten werden. Jetzt prüfst du beim Absenden die Länge und schneidest den String einfach nach xxx Zeichen ab und fertig, da alles andere doch an den verscheidenen Browser zu scheitern scheint (der Mozilla hat sich z.b. aufgehangen). Jetzt musst du nur noch eventuelle Zeilenumbrüche ausfiltern - am besten natürlich serverseitig per z.b. php, damit das auch ohne JavaScript beim User funktioniert.

    Gruss, Matthias
     
  9. WolfgangNMS

    WolfgangNMS Byte

    Registriert seit:
    27. Mai 2001
    Beiträge:
    10
    Hi Benjamin,
    Es geht mir nicht darum, das Texteingabefeld in der Größe zu begrenzen, sondern darum, das die vorgegebene Zeilenzahl bei der Eingabe nicht überschritten wird. In einer normalen Textarea kommen nach überschreiten einer vordefinierten Größe automatisch Scrollbalken, was mir nicht hilft.
    Um das Seitenlayout für die Folgeseite nicht zu zerstören, dürfen in dieses Feld maximal 15 Zeilen mit jeweils maximal 50 Zeichen geschrieben werden.
    Gruß
    WolfgangNMS
     
  10. kalweit

    kalweit Hüter der Glaskugel

    Registriert seit:
    18. April 2000
    Beiträge:
    31.469
    Richtig. Aber es reicht doch einfach den Wert von document.newentry.ftext.value.length abzufragen, oder?

    Gruss, Matthias

    Achso, wenn\'s nicht funktioniert, tippe mal nach dem Fehler "javascript:" in die Adresszeile des NS und poste mal die Fehlermeldung.
    [Diese Nachricht wurde von kalweit am 01.03.2002 | 13:35 geändert.]
     
  11. WolfgangNMS

    WolfgangNMS Byte

    Registriert seit:
    27. Mai 2001
    Beiträge:
    10
    @Matthias,
    reicht leider nicht, da das ja nur die gesamte Textlänge abfragt, die ja je nach Eingabe variabel ist. Sprich, wenn jemand nach jeden Wort z.B. einen Umbruch erzwingt, ist die max length wesentlich kürzer als bei durchgehender Eingabe. Was ich aber erreichen möchte, ist ein Texteingabefeld, dessen vorgegebene Grösse nicht verändert werden kann. Alles was in diesen Textfeld steht, soll so, wie es der Anwender sieht, auf eine Folgeseite übernommen werden. Wird die Anzahl der Zeilen zu gross, würde diese Folgeseite im Design zerrissen.
    Um Dir ein genaueres Bild zu machen, schau Dir doch bitte mal das Gästebuch von www.nordspass.de an (unter Kontakte).

    Gruß, Wolfgang
     
Status des Themas:
Es sind keine weiteren Antworten möglich.

Diese Seite empfehlen