Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 如何在Ajax.BeginForm和OnSuccess之间获取事件?_Jquery_Ajax_Asp.net Mvc_Razor_Ajaxform - Fatal编程技术网

Jquery 如何在Ajax.BeginForm和OnSuccess之间获取事件?

Jquery 如何在Ajax.BeginForm和OnSuccess之间获取事件?,jquery,ajax,asp.net-mvc,razor,ajaxform,Jquery,Ajax,Asp.net Mvc,Razor,Ajaxform,我有一个表单,我使用Ajax.BeginForm提交它。我想做以下工作: 提交包含所有数据的表单(使用Ajax.BeginForm) 在等待控制器时,做一些工作,包括截断我的文本区域 完成控制器后(使用OnSuccess),再做一些事情 然而,虽然1)和3)工作得很好,但我不知道用哪种方式访问2。我曾尝试在表单上使用JavaScript事件submit,但似乎此事件以前发生过,因此如果我清空文本区域,控制器将永远不会看到此填充值 我的剃须刀: @using (Ajax.BeginForm

我有一个表单,我使用
Ajax.BeginForm
提交它。我想做以下工作:

  • 提交包含所有数据的表单(使用
    Ajax.BeginForm
  • 在等待控制器时,做一些工作,包括截断我的文本区域
  • 完成控制器后(使用
    OnSuccess
    ),再做一些事情
  • 然而,虽然1)和3)工作得很好,但我不知道用哪种方式访问2。我曾尝试在表单上使用JavaScript事件
    submit
    ,但似乎此事件以前发生过,因此如果我清空文本区域,控制器将永远不会看到此填充值

    我的剃须刀:

        @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;"/>
    
        }
    
    @使用(Ajax.BeginForm(“CreateNotification”,“Task”,null,new AjaxOptions(){HttpMethod=“POST”,OnSuccess=“newMessage”},new{id=“conv_form”}))
    {
    @Html.HiddenFor(c=>c.ConversationId)
    @text区域(c=>c.New_消息,New{@class=“form control conversation box”})
    }
    
    我还有我的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>
    
    
    $(文档).ready(函数(){
    ///在这里,我计划截断我的文本区域+其他内容
    $('conv#u form')。提交(函数(){
    console.log('conv_form submit');
    });
    });
    函数newMessage(数据){
    log('newmessagefired');
    }
    
    因此,我的挑战是,对于我的
    submit
    事件,如果我操作字段,这将更改我们发送给控制器的内容。我想访问一个事件,该事件介于发送到控制器的内容和成功的
    事件之间

    您可以尝试ajaxStart

     $('#conv_form').submit(function () {
            console.log('conv_form submit');
        });
    }).ajaxStart(function(){
          //DoYourStuff
        })
        .ajaxStop(function(){
            //Stop Your Stuff
        });
    

    您可以使用
    ajaxStart
    执行以下步骤2:

    $(document).ajaxStart(function() {
       // do step 2
    });
    

    ajaxStart()
    方法指定AJAX请求启动时要运行的函数。从
    jQuery 1.9版开始
    ,此方法应仅附加到
    文档
    。有关更多信息,请参阅。

    您是否尝试使用jQuery的ajaxStart()函数使用属性