私はdjangoにフォームを持っています。「メール作成」フォームです。このフォームをビューからテンプレートに送信し、ckeditor を適用してボディ スタイルを変更します。このフォームを ajax で投稿したい。ckeditor を使用すると、request.POST で body フィールドの値が送信されません。私はこのコード行を使用してckeditorを使用します:
CKEDITOR.replace('id_body');
(ckeditor を使用しなくても、すべて正常に動作します。)
<form id="compose_form" action="compose/" method="post">
{% csrf_token %}
{{ form.non_field_errors }}
<div>
<div class="form-field">
<label for="id_recipient">{% trans 'recipient' %}:</label>
{{ form.recipient }}
{{ form.recipient.errors }}
</div>
<div class="form-field">
<label for="id_subject">{% trans 'subject' %}:</label>
{{ form.subject }}
{{ form.subject.errors }}
</div>
</div>
<div class="form-field">
{{ form.body }}
{{ form.body.errors }}
</div>
<input id="messages-submit" type="submit" value=""Send"/>
</div>
</form>
そして、このスクリプトを使用して、ajax 経由でフォーム データを送信します。
<script type="text/javascript">
$(function() {
$('#compose_form').submit(function() {
var temp = $("#compose_form").serialize();
$.ajax({
type: "POST",
data: temp,
url: 'compose/',
success: function(data) {
// do s.th
}
});
return false;
});
});
</script>
このスクリプトでは、本文の値が request.POST に送信されません (つまり、本文フィールドに空の文字列が送信されます)。以下の行をスクリプトに追加すると、本文フィールドの値が送信されますが、ajax ではありませんもっと。どうすればいいですか?