2012-03-29 93 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(""); 
     }); 
    }); 

有沒有辦法做到這一點。

回答

2

如何在等待響應之前清空方框?

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

如果使用此代碼。在提交之前清除文本框。所以提交空文本框。 – 2012-03-29 14:36:12

+0

你是對的,我添加了超時時間,試試這個。 – Rodik 2012-03-29 15:30:46

+0

正在工作。非常感謝。比我的解決方案更快。我不能投票。對不起:) – 2012-03-29 15:35:45