Satyam Gautam
Satyam Gautam

Reputation:

Maximum length on a textarea in Ruby on Rails

I tried applying the :maxlenght => 40 on a textarea on my form. But it didn't work out. Can we have a length limit on a textarea?

The code for text area is

<%= f.text_area :data,
                :rows => 2,
                :cols => 60 ,
                :maxlength => 140,
                :autocomplete => :off,
                :class => "textareabytes" %>

Upvotes: 14

Views: 17778

Answers (4)

konyak
konyak

Reputation: 11706

You can use the maxlength attribute. It is new for the tag in HTML5. It should work nowadays.

Upvotes: 1

patrickdavey
patrickdavey

Reputation: 2076

Not strictly what you're after of course, but, you can always put a:

validates_length_of :data, max: 40

on your model. Won't stop the textarea size of course :)

Upvotes: 1

Rahul
Rahul

Reputation: 13056

Could it be due to a typo?

":maxlenght => 40 " in your post is misspelt.

EDIT:

I didn't read your post carefully. I think there is no maxlength attribute for textarea in HTML. You will have to handle it in JavaScript. There is more information in "MaxLength on a Textarea".

Upvotes: 4

Shalom Craimer
Shalom Craimer

Reputation: 21449

Just like Rahul said, there's no maxlength attribute for textarea in HTML. Only text input's have that.

The thing you need to remember, is that RoR's text_area function (and all of RoR's HTML-generator functions) accept any argument you'll give them. If they don't recognized the parameter, then the'll just convert it to HTML.

<%=f.text_area :data, :hellothere => "hello to you too"%>

Will output this HTML:

<textarea name="data" hellothere="hello to you too"></textarea>

I know it's hard to remember, but Ruby on Rails isn't magic, it just does a lot of things for you. The trick is to know how it does them, so you can understand why they work, and how to fix them when they don't!

Upvotes: 13

Related Questions