質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Smarty

Smartyは、PHPアプリケーションで使用されるテンプレートエンジンです。

Q&A

解決済

1回答

16853閲覧

Jquery textareaの入力値(改行)をhtmlで出力したい

退会済みユーザー

退会済みユーザー

総合スコア0

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Smarty

Smartyは、PHPアプリケーションで使用されるテンプレートエンジンです。

0グッド

0クリップ

投稿2016/11/26 01:17

事前に登録された値を下記のコードで出力しているとして

編集側

html

1<textarea data-block_id="#block_text1" class="blocktext_edit"> 2 {$text|nl2br}<!--多分関係ないと思いますがsmartyを使ってます。--> 3</textarea>

表示側

HTML

1<div id="view"> 2 <span id="block_text1"> 3 {$text|nl2br} 4 </span> 5</div>

テキストアリアの入力値をリアルタイムに表示側<span id="block1">に出力したいと思って下記のソースを書きました。

Jquery

1// ブロックテキスト書き換え 2$(".blocktext_edit").focus(function(){ 3//try1 -------------------------------------- 4 $(this).keyup(function () { 5 var change_text = $(this).val(); 6 var target_block = $(this).attr('data-block_id'); 7 $(target_block).html(change_text ); 8 }); 9 //結果 文字は反映されるんですが<span id="block1">に元々あった<br />が消える 10// end try1----------------------------------- 11// try2--------------------------------------- 12 $(this).keyup(function () { 13 var change_text = $(this).val(); 14 var txt = change_text.replace(/\r\n/g, '<br />'); //'\n'を'<br />'に変えてみる 15 txt = txt.replace(/\r/g, '<br />'); //'\n'を'<br />'に変えてみる 16 var target_block = $(this).attr('data-block_id'); 17 $(target_block).html(txt); 18 }); 19 //結果 try1と同じ... 20// end try2----------------------------------- 21 22}).blur(function(){ 23 //ここでは関係ないので割愛 24}

これどうやったら改行もそのままに<span id="block1">へ反映させられますか?

宜しくお願いしますm(_ _;)m

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

とりあえず下記で動きますが、$( target_block ).html( txt ); にするとHTML文字列が入力したまま入ります。< > など必要なものを実体参照に置き換えるか、許可するHTMLを厳密に設計されたほうが良いと思います。

JavaScript

1var txt = change_text.replace( /\r?\n/g, '<br />' ); 2```**動くサンプル:**[https://jsfiddle.net/50g31wcq/](https://jsfiddle.net/50g31wcq/)

投稿2016/11/26 02:14

kei344

総合スコア69583

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/11/26 02:29

kei344様 うまく動きました.. 出力部分を $(target_block).html(change_text.replace( /\r?\n/g, '<br />' )); としてみました。 いつもありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問