0

my new.html.twigコードを以下に示します。フォーム送信後にフォーム フィールドをクリアするにはどうすればよいですか?

{% extends '::base.html.twig' %}

{% block body -%}
<h1>Proposals creation</h1>

<form action="{{ path('proposals_create') }}" method="post" {{ form_enctype(form) }}>
    {{ form_widget(form) }}
    <p>
        <button type="submit">Create</button>
    </p>
</form>

    <ul class="record_actions">
<li>
    <a href="{{ path('proposals') }}">
        Back to the list
    </a>
</li>
</ul>
<div id="result"></div>
{% endblock %}
{% block javascripts %}
<script src="{{ asset('js/jquery-1.10.2.js') }}" type="text/javascript"></script>
<script type="text/javascript">
 $().ready(function() {
     $("form").submit(function(e) {
         e.preventDefault();
         var $url = $(this).attr('action');
         var $data = $(this).serialize();
         $.ajax({
            type: "POST",
            url: $url,
            data: $data
         }).done(function( result ) {
            if(result.success) {
                $('#result').html('<span>Monetary expense correctly saved!<br/> The data are:<br/>id: '+ result.id +'<br/>descrition: '+ result.description +'<br/>proposalname: '+ result.proposalname +'<br/>status: '+ result.status +'</span>');
            }
         });
     });
 });

 </script>
{% endblock %}
4

1 に答える 1

0

HTMLFormElement.reset()を使用して、すべての<form>フィールドをデフォルトに戻します。

 $("form").submit(function(e) {
     e.preventDefault();
     var $url = $(this).attr('action');
     var $data = $(this).serialize();
     $.ajax({
        type: "POST",
        url: $url,
        data: $data
     }).done(function( result ) {
        if(result.success) {
            $('#result').html('<span> ... </span>');
        }
     });
     this.reset(); // formElement.reset()
 });

reset() は、フォームを初期状態にリセットします。このメソッドは、フォームのリセット ボタンをクリックするのと同じことを行います。フォーム コントロール (リセット ボタンなど) の名前または ID が reset の場合、フォームのリセット メソッドがマスクされます。

于 2013-08-21T09:05:29.867 に答える