2009-05-20 4 views
13

Ho provato ad applicare il :maxlenght => 40 su un textarea sul mio modulo. Ma non ha funzionato. Possiamo avere un limite di lunghezza su una textarea?Lunghezza massima su una textarea in Ruby on Rails

Il codice per l'area di testo è

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

risposta

4

Potrebbe essere a causa di un errore di battitura?

": lunghezza massima => 40" nel tuo post è sbagliato.

EDIT:

non ho letto il tuo post con attenzione. Penso che non ci sia un attributo maxlength per textarea in HTML. Dovrai gestirlo in JavaScript. Vi sono ulteriori informazioni in "MaxLength on a Textarea".

+0

Mi dispiace in realtà la sua corretta nel codice ho scritto sbagliato qui –

+0

Si prega di consultare la domanda modificato –

+0

Thnx compagno dal momento che nessun altro andare ..... i ha scritto una funzione javascript per implementarlo .... –

13

Proprio come Rahul ha detto, non c'è l'attributo maxlength per textarea in HTML. Solo quello textinput ha quello.

La cosa che devi ricordare è che la funzione text_area del RoR (e tutte le funzioni del generatore HTML di RoR) accetta qualsiasi argomento tu fornisca loro. Se non riconoscono il parametro, allora lo convertono semplicemente in HTML.

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

uscita sarà questo HTML:

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

so che è difficile da ricordare, ma Ruby on Rails non è magia, semplicemente fa un sacco di cose per voi. Il trucco è sapere come funziona, quindi puoi capire perché funzionano e come risolverli quando non lo fanno!

+4

C'è un attributo 'maxlength' per' textarea'since HTML5. Sfortunatamente, non è supportato in IE prima di 10. Vedi MDN per [dettagli completi] (https://developer.mozilla.org/en-US/docs/Web/HTML/Element/textarea). –

+1

+1 per "Lo so È difficile da ricordare, ma Ruby on Rails non è magico-" – 0112

+2

Fonti sulla lunghezza massima per HTML5: http://www.w3schools.com/tags/att_textarea_maxlength.asp https: // developer.mozilla.org/en-US/docs/Web/HTML/Element/textarea#Attributes – 0112

0

Non strettamente quello che stai dopo, naturalmente, ma, si può sempre mettere un:

validates_length_of :data, max: 40 

del modello. non si fermerà la dimensione textarea ovviamente :)