2012-03-29 11 views
0

ajaxの投稿後にテキストボックスをクリアしたい。ajaxフォーム送信イベントの前にテキストボックスのテキストをクリアする方法はありますか?

<div style="padding: 5px; background-color: Silver;"> 
@using (Ajax.BeginForm("_MessagesPartial", "Chat", new AjaxOptions { UpdateTargetId = Model.room_id.ToString() })) 
    { 
    <div style="padding: 5px 15px 5px 5px;"> 
     @Html.TextBox("textbox_message", null, new { @class = "text_yorum", id = "text_box_chat" }) 
     @Html.Hidden("oda_id", Model.room_id) 
    </div> 
    } 
</div> 

<div id="@Model.room_id" style="height:400px;overflow-y:scroll;position: relative;"> 
    @Html.Action("_MessagesPartial", "Chat", new { room_id = Model.room_id }) 
</div> 

多くの例がありますが、動作しません。私はすでにこのコードを使っていますが、遅すぎます。

$("form").submit(function() { 
    $.get('@Url.Action("_MessagesPartial", "Chat", new { room_id = Model.room_id }) ', {}, function (view) { 
     $("#@Model.room_id").html(view); 
     $("#text_box_chat").val(""); 
    }); 
}); 

これを実行する方法はありますか。

答えて

0

私は通常、Ajax関数を使用します。しかし、とにかく私はあなたの問題の鍵は、あなたが成功の機能を持っていないと信じています。このようなことを試してみてください。

$.ajax({ 
     url: 'yourfile.php', 
     type: 'POST', 
     success: function() { 

      $('#myform input').val(""); 

     } 
}); 
0

あなたは2つのAJAXリクエストを送信しているようです。 1つはAjax.BeginFormヘルパーによって送信され、もう1つはカスタムの.submitハンドラ内に送信されます。あなたは、AJAXリクエストがAjaxOptionsに完了した後に実行されるコールバックを指定できます。

@using (Ajax.BeginForm("_MessagesPartial", "Chat", new AjaxOptions { UpdateTargetId = Model.room_id.ToString(), OnSuccess = "onSuccess" })) 
{ 
    ... 
} 

をし、このコールバック内で入力をクリア:

function onSuccess() { 
    $("#text_box_chat").val("");  
} 

あなたがに加入する必要はありません。フォームのイベントを送信し、AJAXリクエストを送信します。これがAjax.BeginFormヘルパーがすでに行っていることです。

+0

です。どうもありがとう。 –

+0

うれしい私は助けることができます。あなたはそれを解決するのに役立つならば、[それを答えとしてマークする](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)問題。 –

+0

すみません。あなたの助言に感謝します。知りませんでした –

関連する問題