我希望在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 :(得分:0)
您似乎正在发送2个AJAX请求。一个由Ajax.BeginForm帮助程序发送,一个在自定义.submit处理程序中。您可以指定在AjaxOptions中完成AJAX请求后执行的回调:
@using (Ajax.BeginForm("_MessagesPartial", "Chat", new AjaxOptions { UpdateTargetId = Model.room_id.ToString(), OnSuccess = "onSuccess" }))
{
...
}
并清除此回调中的输入:
function onSuccess() {
$("#text_box_chat").val("");
}
您不需要像您一样订阅表单的.submit事件并发送AJAX请求。这就是Ajax.BeginForm助手已经做的事情。
答案 1 :(得分:0)
我通常使用Ajax函数。但无论如何我相信你的问题的关键是你没有成功的功能。尝试这样的事情。
$.ajax({
url: 'yourfile.php',
type: 'POST',
success: function() {
$('#myform input').val("");
}
});