2017-04-23 11 views
1

私は、コンテンツ編集可能なスパンを含む私の小枝テンプレートにフォームを持っています。私は、新しいテキストを変更してスパンに追加するようにしたいので、フォームが提出されると新しいテキストが含まれます。ここでcontenteditableスパンのテキストを取得するには?

は私のHTMLフォームです:

<form action="{{ path('change') }}" method="post"> 
    <span name="profil" class="profil" contenteditable="true">{{ prof.libel }}</span> 
    <button name="change" type="submit"> 
    </button> 
</form> 

これは私のjQueryのスクリプトです:

<script> 
    $(document).ready(function() { 
     $('span.profil').change(function() { 
      $text = $(this).text(); 
      $(this).append(document.createTextNode($text)); 
     }); 
    }); 
</script> 
+0

あなたのHTMLは無効ですか?開いているボタンの要素には閉じ角がありません –

+0

ああ、この質問を投稿したときにいくつかのコードを削除したからです。しかし私のプロジェクトでは、私のコードは何も欠けていません。 – Susan

答えて

1

SPAN要素は、そのようなchangeイベントがありません。 BUTTONのclickイベント、またはFORMのsubmitイベントでスパンのテキストをキャプチャする必要があります。

$('#theForm').on("submit", function() { 
    var text = $('span.profil').text(); 
    // or $('span.profil')[0].innerHTML; 
}); 

// or... 
$('#theButton').on("click", function() { 
    var text = $('span.profil').text(); 
}); 

参考divspan、そして他の人がchangeイベントの相互作用を持っていないHTMLElementインタフェースを実装しています。 change eventの取り扱いをサポートする要素を確認してください。

+0

divにスパンを変更すると動作しますか?私が多くのdivの例を見たので、 – Susan

+0

['div'](https://html.spec.whatwg.org/multipage/semantics.html#the-div-element)、[' span'](https:// html .spec.whatwg.org/multipage/semantics.html#the-span-element)、他のものは** ['HTMLElement'](https://html.spec.whatwg.org/multipage/dom.html# htmlelement)** 'change'イベントのためのインタラクションを持たないインターフェース。 ['change'イベントの処理をサポートする要素を確認してください(https://developer.mozilla.org/en/US/docs/Web/Events/change) – jherax

+0

私はこれが私の場合はうまくいかないと思います。動的にボタンとスパンの要素を作成したので、どのスパンとどのボタンを使用するのかを特定するにはどうすればよいですか? – Susan

関連する問題