これについてすべてのグーグルとスタックオーバーフローの結果を試した後、私はあなたの助けを求めることにしました.
Symfony2 アプリを作成しています。アプリのすべてのビュー内に、提案/質問メールを送信するフォームを含む Twitter ブートストラップ モーダル要素を含めています。したがって、基本の twig テンプレートから、この非表示のモーダルを含めます。
モーダルの表示/非表示は問題なく機能します。モーダルには、必要に応じてフォームが含まれています。
ここから達成しようとしているのは、フォームの AJAX 送信、コントローラーでのメール送信、ビューへの応答です。その応答はjsonであり、モーダルのhtmlを「* dismiss_button *」+「メール送信」OR「問題が発生しました」に変更する成功関数。
かなり単純なようです。まあ、そこにあるほとんどの解決策を試した後、フォームの送信を防ぐことはできません. だから私はそれを本当に本当にシンプルに保つことに決めました.
ここでは、モーダル コード:
<!-- Modal -->
<div id="myModal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3 id="myModalLabel">Send your suggestion</h3>
</div>
<div class="modal-body">
{% if is_granted('ROLE_USER') %}<p>We will reply to {{ app.user.mail }}</p>
{% else%}<p>Don't forget to include a reply-to email in your suggestion.</p>
{% endif %}
<form action="{{ path("mgfbc_arrt") }}" method="post" id="arrt">
<div class="control-group">
<label for="username">Text:</label>
<div class="controls">
<textarea id="mail" name="mail" rows="4" style="width:500px;"></textarea>
</div>
</div>
<div class="modal-footer">
<input type="submit" id="butt" class="btn btn-success" value="Send">
</div>
</form>
</div>
そして、JS:
<script type="text/javascript">
$("#butt").on('click', function(e) {
e.preventDefault();
});
</script>
すべてを試した後、この JavaScript がフォームの送信を妨げないところまで到達しました。
私は何を間違っていますか?
前もって感謝します。