[thelist] Limiting length of textarea field

Anthony Baratta anthony at baratta.com
Fri Jan 5 09:20:00 CST 2007


ben morrison wrote:
  > Could you show us an example? My first thoughts would be to change the
> style of the textarea in the print CSS.
> 
> 	<style type="text/css" media="print">
> 		textarea {
> 			overflow:visible;
> 		}
> 	</style>

I'm pretty sure I've tried that before and overflow doesn't work with a 
TextArea. Hence the flip and switch between a hidden div and the textArea.

Here's what I sent FayeC directly last night:

I just did this for a project so I know that it works more than in 
theory, but I don't have code to share because it's for an intranet.

What I can do is outline what I did:

First off CSS allows you do define the media to use the style sheet:

http://www.w3.org/TR/REC-CSS2/media.html

<LINK rel="stylesheet" type="text/css"
      media="all" href="foo.css">

<LINK rel="stylesheet" type="text/css"
      media="print" href="foo-print.css">

In the default CSS make the textarea "display: inline;" and the 
replacement DIV,  "display: none;"

Then in the print media type CSS you make the textarea "display: none;" 
and the replacement DIV,  "display: block;" or inline, whatever works 
best for your layout.

In your HTML it might look like this:

<div id="TextAreaContainer">
     <textarea id="formTextArea" name="formTextArea"
         class="screenOnly">User entered text</textarea>
     <div id="divTextArea" class="printOnly"></div>
</div>

Your CSS might look like this:

foo.css

.screenOnly { display: inline;}
.printOnly { display: none;}


foo-print.css

.screenOnly { display: none;}
.printOnly { display: inline;}

You only need to replicate the CSS styles between screen and print that 
are going to change if the deault CSS is set to ALL - the print version 
of the CSS file does not have to replicate the WHOLE default CSS file. 
If it's second on the list it will "over-ride" the duplicate styles.

And you can clone the text from the text area to the div one of two 
ways. Either via a "print button" that copies the innerText of the Text 
Area to the div, or on each keypress copy the text over.

The second way allows you to forego the print button since everytime 
they press a key in the Text Area, the text is copied over. Obviously if 
they have JS turned off, the copy feature will not work - but that 
doesn't happen that often anymore. And you can default the text in the 
replacement DIV with a warning message.

Hope that helps.





More information about the thelist mailing list