Skip to content

View Helpers

textArea()

textArea() — returns string

Available in: controller Category: Form Object Functions

Builds and returns an HTML <textarea> form control for a given model object and property. It is commonly used when you need a larger text input field, such as for descriptions, comments, or notes. The function automatically binds the value of the specified property from the object to the textarea. You can also pass additional attributes like class, id, or rel to customize the generated HTML. When working with nested forms or associations, you can specify the association and position arguments to bind the field to related objects. Wheels also provides options to add labels, control label placement, prepend or append HTML around the field, and handle error display automatically.

NameTypeRequiredDefaultDescription
objectNameanyyesThe variable name of the object to build the form control for.
propertystringyesThe name of the property to use in the form control.
associationstringnoThe name of the association that the property is located on. Used for building nested forms that work with nested properties. If you are building a form with deep nesting, simply pass in a list to the nested object, and Wheels will figure it out.
positionstringnoThe position used when referencing a hasMany relationship in the association argument. Used for building nested forms that work with nested properties. If you are building a form with deep nestings, simply pass in a list of positions, and Wheels will figure it out.
labelstringnouseDefaultLabelThe label text to use in the form control.
labelPlacementstringnoaroundWhether to place the label before, after, or wrapped around the form control. Label text placement can be controlled using aroundLeft or aroundRight.
prependstringnoString to prepend to the form control. Useful to wrap the form control with HTML tags.
appendstringnoString to append to the form control. Useful to wrap the form control with HTML tags.
prependToLabelstringnoString to prepend to the form control’s label. Useful to wrap the form control with HTML tags.
appendToLabelstringnoString to append to the form control’s label. Useful to wrap the form control with HTML tags.
errorElementstringnospanHTML tag to wrap the form control with when the object contains errors.
errorClassstringnofield-with-errorsThe class name of the HTML tag that wraps the form control when there are errors.
encodeanynotrueUse this argument to decide whether the output of the function should be encoded in order to prevent Cross Site Scripting (XSS) attacks. Set it to true to encode all relevant output for the specific HTML element in question (e.g. tag content, attribute values, and URLs). For HTML elements that have both tag content and attribute values you can set this argument to attributes to only encode attribute values and not tag content.
1. Basic textarea with label
#textArea(label="Overview", objectName="article", property="overview")#

2. Customizing with HTML attributes
#textArea(
 label="Comments", 
 objectName="post", 
 property="comments", 
 class="form-control", 
 id="commentsBox", 
 rows="5", 
 cols="50"
)#

3. Using with nested associations
<fieldset>
 <legend>Screenshots</legend>
 <cfloop from="1" to="#ArrayLen(site.screenshots)#" index="i">
 #fileField(label="File #i#", objectName="site", association="screenshots", position=i, property="file")#
 #textArea(label="Caption #i#", objectName="site", association="screenshots", position=i, property="caption")#
 </cfloop>
</fieldset>

4. Controlling label placement
#textArea(
 label="Details", 
 objectName="project", 
 property="details", 
 labelPlacement="before"
)#

5. Prepending and appending HTML
#textArea(
 label="Notes", 
 objectName="task", 
 property="notes", 
 prepend="<div class='input-wrapper'>", 
 append="</div>"
)#

6. Handling validation errors
#textArea(
 label="Description", 
 objectName="product", 
 property="description", 
 errorElement="div", 
 errorClass="input-error"
)#