現在、データベースと関連付けたアプリの実装を行っております。
つきまして、textareaについてお伺いしたい事があり、投稿致しました。
現状
textarea(col="30" row="3"程度)の中に、ページをロードした時点で、データベースの内容が反映される格好で、元々その表示枠からはみ出る程の長い文が入っています。
これらtextareaはクリックしてアクティブにすると、入力された内容全体が表示されるようにできています。
したいこと
しかしここで、これらのtextareaの表示枠が、クリックせずともロードされた時点で拡大して、入力されている内容の全文が表示されるようにしたいです。
試したこと・コードの現状
HTMLのtextarea部分とJavaScriptのコードの現状です。
html
1<div class="col-8"> 2 <textarea id="txt1" class="form-control auto-resize" type="text" placeholder="" th:text="${message.answer}" readonly>サンプルテキストです。サンプルテキストです。サンプルテキストです。サンプルテキストです。サンプルテキストです。サンプルテキストです。サンプルテキストです。サンプルテキストです。サンプルテキストです。サンプルテキストです。</textarea> 3 <textarea id="txt2" class="form-control auto-resize" type="text" placeholder="" th:text="${message.answer}" readonly>サンプルテキストです。サンプルテキストです。サンプルテキストです。サンプルテキストです。サンプルテキストです。サンプルテキストです。サンプルテキストです。サンプルテキストです。サンプルテキストです。サンプルテキストです。</textarea> 4 <textarea id="txt3" class="form-control auto-resize" type="text" placeholder="" th:text="${message.answer}" readonly>サンプルテキストです。サンプルテキストです。サンプルテキストです。サンプルテキストです。サンプルテキストです。サンプルテキストです。サンプルテキストです。サンプルテキストです。サンプルテキストです。サンプルテキストです。</textarea> 5</div>
javascript
1//textarea自動height調整: textareaタグにauto-resizeクラスを付与により実装 2 $(function(){ 3 $('textarea.auto-resize').on('change keyup click keydown paste cut', function(){ 4 if ($(this).outerHeight() > this.scrollHeight){ 5 $(this).height(2) 6 } 7 while ($(this).outerHeight() < this.scrollHeight){ 8 $(this).height($(this).height() + 1) 9 } 10 $(this).height(2); 11 $(this).height(this.scrollHeight); 12 }).trigger('change'); 13 });
解決したいこと
以上のように「.trigger('change')」をつけて試みても、ロード完了後にtextareaの全文が表示されません。
上記のコードをどのように修正すれば、ロード時に全文が表示されるようになるでしょうか。
今回もまた恐縮ですが、ご存じの方、ご回答の程お願いします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。