2012-03-29 97 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