我有一个表格,我使用Ajax.BeginForm
提交。我要做到以下几点:如何在Ajax.BeginForm和OnSuccess之间获取事件?
- 的所有数据(使用
Ajax.BeginForm
) - 虽然我们等待的控制器,做了一些工作,提交表单 - 包括截断我的textarea
- 当控制器(使用
OnSuccess
),做更多的东西
但是,虽然1)和3)完美的作品,我不知道访问#2的方式。我已经尝试在表单上使用JavaScript事件submit
,但似乎此事件发生在之前,所以如果我清空我的textarea,控制器永远不会看到这个填充的值。
我的剃刀:
@using (Ajax.BeginForm("CreateNotification", "Task",null, new AjaxOptions() {HttpMethod = "POST", OnSuccess= "newMessage" },new {id="conv_form"}))
{
@Html.HiddenFor(c => c.ConversationId)
<div class="form-group">
@Html.TextAreaFor(c => c.New_Message, new {@class = "form-control conversation-box"})
</div>
<input type="submit" value="Send message" id="conversation_message_submit" class="btn btn-link pull-right" style="color: black; padding-right: 0px; font-size: 12pt;"/>
}
我也有我的jQuery:
<script>
$(document).ready(function() {
/// Here I plan to truncate my textarea + other stuff
$('#conv_form').submit(function() {
console.log('conv_form submit');
});
});
function newMessage(data) {
console.log('newmessage fired');
}
</script>
所以我的挑战是我的submit
情况下,如果我操作领域,这将改变什么我们发送给控制器。我想访问发送给控制器和OnSuccess
之间的事件。
您是否尝试过使用jQuery的ajaxStart()函数https://api.jquery.com/ajaxStart/ – jyrkim
使用[AjaxOptions.OnBegin](https://msdn.microsoft.com/zh-cn/library/system .web.mvc.ajax.ajaxoptions.onbegin(v = vs.118).aspx)属性 –