Максимальная длина в текстовом поле в Ruby on Rails
Я попробовал применить :maxlenght
= > 40 на textarea в моей форме.
Но это не сработало.
Можем ли мы иметь ограничение длины на текстовом поле?
Код для текстовой области
<%= f.text_area :data,
:rows => 2,
:cols => 60 ,
:maxlength => 140,
:autocomplete => :off,
:class => "textareabytes" %>
Ответы
Ответ 1
Как и Rahul, нет атрибута maxlength
для textarea
в HTML. Только text
input
имеют это.
То, что вам нужно запомнить, заключается в том, что функция RoR text_area
(и все функции RoR-HTML-генератора) принимает любые аргументы, которые вы им дадите. Если они не распознают параметр, то он просто преобразует его в HTML.
<%=f.text_area :data, :hellothere => "hello to you too"%>
Выведет этот HTML-код:
<textarea name="data" hellothere="hello to you too"></textarea>
Я знаю, что это трудно запомнить, но Ruby on Rails - это не волшебство, а просто для вас многое. Трюк заключается в том, чтобы знать, как он их делает, поэтому вы можете понять, почему они работают, и как их исправлять, когда они этого не делают!
Ответ 2
Может ли это быть опечаткой?
": maxlenght = > 40" в вашем сообщении - misspelt.
EDIT:
Я не читал ваш пост внимательно. Я думаю, что нет атрибута maxlength для textarea в HTML. Вам придется обрабатывать его в JavaScript. В " MaxLength в текстовой области есть дополнительная информация.
Ответ 3
Не совсем то, что вы, конечно, но, вы всегда можете поставить a:
validates_length_of :data, max: 40
на вашей модели. Конечно, не остановит размер текстовой области:)
Ответ 4
Вы можете использовать атрибут maxlength. Это новое для тега в HTML5. Это должно работать в наше время.