Я работаю над приложением в рельсах и немного новичок в этом. Все, что я хочу, - это создать динамическое текстовое поле, которое будет расширяться по высоте в зависимости от того, сколько текста написано, и при обновлении сообщения, чтобы соответственно распознать высоту сообщения. Я нашел много примеров и даже попробовал autosize gem, но по какой-то причине он просто не работает. что у меня есть до сих пор:
_form.heml.erb частично
<%= form_for @post, remote: true do |form| %>
<% if post.errors.any? %>
<div id = "error_explanation">
<h2><%= pluralize(post.errors.count, "error") %> prohibited this post from being saved:</h2>
<ul>
<% post.errors.full_messages.each do |message| %>
<li><%= message %></li>
<% end %>
</ul>
</div>
<% end %>
<div class = "field">
<%= form.label :body %>
<%= form.text_area :body, id: :post_body %>
</div>
<div class = "actions">
<%= form.submit %>
</div>
<% end %>
<div class = "output"></div>
posts.js
$('#post_body').on('change keyup keydown paste cut', 'textarea', function () {
$(this).height(0).height(this.scrollHeight);
}).find('textarea').change();
.scss файл
textarea {
width: 200px;
height:15px;
line-height:15px;
min-width: 200px;
max-width: 300px;
transition: width 0.25s;
resize:none;
overflow:hidden;
}
Я пробовал еще много, но по какой-то причине у меня ничего не работало, и я не понимаю, почему. Все файлы видны (я пробовал какое-то оповещение («тесты»)). Я использую rails 2.5.0 в Linux Ubuntu. Если кто-нибудь может сказать мне, что я делаю не так, я был бы очень благодарен. Спасибо.
это сработало для меня! Спасибо! Только сейчас, когда я пытаюсь обновить сообщение, он не распознает высоту текстовой области. Поэтому, если у меня 8 строк / строк, отображаются только стандартные 3.

Я просто использую плагин autogrow для jquery: http://www.technoreply.com/autogrow-textarea-plugin-3-0/
В твоем случае:
$(function () {
$('#post_body').autoGrow();
});
сделаю работу.
Не уверен, но вы сможете прикрепить это к событию
$ ("# ваш идентификатор или. для класса"). css ("высота", "3vw", "ширина" "10vw");