Jquery Javascript事件处理程序未拦截表单提交

Jquery Javascript事件处理程序未拦截表单提交,jquery,asp.net-mvc,asp.net-mvc-4,razor,asp.net-ajax,Jquery,Asp.net Mvc,Asp.net Mvc 4,Razor,Asp.net Ajax,我正在使用asp.NETMVC4Razor,我有一个主视图,其中有一些复选框和一个提交按钮。这些复选框指示要执行的任务。用户通过复选框选择要执行的任务,然后单击submit按钮启动流程。我有一个div块,我想将操作的进度放在控制器中,它们当前正在执行的任务 单击提交按钮后,我希望启动第一个脚本(主脚本),然后完成下一个任务 问题是,第一个主脚本然后依次调用其他主脚本没有被调用 我正在使用ASP.NETMVC4 下面是代码 视图: 视图模型: public class ViewModel {

我正在使用asp.NETMVC4Razor,我有一个主视图,其中有一些复选框和一个提交按钮。这些复选框指示要执行的任务。用户通过复选框选择要执行的任务,然后单击submit按钮启动流程。我有一个div块,我想将操作的进度放在控制器中,它们当前正在执行的任务

单击提交按钮后,我希望启动第一个脚本(主脚本),然后完成下一个任务

问题是,第一个主脚本然后依次调用其他主脚本没有被调用

我正在使用ASP.NETMVC4

下面是代码

视图:

视图模型:

public class ViewModel
{
    public bool task01{ get; set; }
    public bool task02{ get; set; }
}
我有以下问题:

  • 我应该放,而不是因为如果没有,我会 未定义错误消息javascript“$”
  • 此脚本$(“#frm”).submit(函数(事件){…//body…}是 未被执行,因此,此服务器上的其他操作 完成。因此,第一个脚本的事件完成未完成 达到
  • 注意:我已检查是否正在访问控制器中的操作PerformTask。未访问控制器上的其他操作Task1、Task2。 在脚本中,我没有成功,而是尝试了完成,但没有成功。 此外,我还尝试在Controld by JsonResult中的操作中替换ActionResult,并返回重定向(…)以返回Json(“”),但也没有成功

    Javascript事件处理程序似乎没有拦截表单提交

    有什么想法吗

    生成的代码:

    <form action="/Tests/PerformTasks" id="frm" method="post"><fieldset style="margin-top:20px;margin-left:0px;float:left;"> 
       .... 
       <input type="submit" value="Execute" /> 
       ...
       <div id="divStatus"></div>
       ...
    </form>
    
    
    .... 
    ...
    ...
    
    然后在脚本下面:

    <script src="/Scripts/jquery-1.7.1.min.js" type="text/javascript">
        alert("Within Script");
        $("#frm").submit(function (event) { .. });
        ...
    </script> 
    
    
    警报(“脚本内”);
    $(“#frm”).submit(函数(事件){..});
    ...
    

    脚本与此处发布的脚本相同。

    您没有在文档中围绕表单提交处理程序。准备就绪后,它将在表单进入DOM之前被激活

    <script type="text/javascript">
        $(document).ready(function(){
            $("#frm").submit(function (event) { 
                var form = $(evt.currentTarget);
    
                if(!form.validate().valid()) // you'll need to check this line
                    return false;
    
                 PerformTask();
                 event.preventDefault();
                 return false;
            });
    
        });
    </script> 
    
    
    $(文档).ready(函数(){
    $(“#frm”).submit(函数(事件){
    变量形式=$(evt.currentTarget);
    如果(!form.validate().valid())//您需要检查此行
    返回false;
    PerformTask();
    event.preventDefault();
    返回false;
    });
    });
    
    我认为您的第一个表单是进行完整的回发。如果您在进行表单提交时监视chrome中的“网络”选项卡,如果您看到它是由jquery或类似的请求,您就知道您正在进行部分回发


    hth

    您没有在文档中围绕表单提交处理程序。准备就绪后,它将在表单进入DOM之前被激活

    <script type="text/javascript">
        $(document).ready(function(){
            $("#frm").submit(function (event) { 
                var form = $(evt.currentTarget);
    
                if(!form.validate().valid()) // you'll need to check this line
                    return false;
    
                 PerformTask();
                 event.preventDefault();
                 return false;
            });
    
        });
    </script> 
    
    
    $(文档).ready(函数(){
    $(“#frm”).submit(函数(事件){
    变量形式=$(evt.currentTarget);
    如果(!form.validate().valid())//您需要检查此行
    返回false;
    PerformTask();
    event.preventDefault();
    返回false;
    });
    });
    
    我认为您的第一个表单是进行完整的回发。如果您在进行表单提交时监视chrome中的“网络”选项卡,如果您看到它是由jquery或类似的请求,您就知道您正在进行部分回发


    hth

    你能发布生成的HTML吗?我刚刚发布了呈现视图的一部分重要部分。请告诉我你感兴趣的部分。我不能发布所有信息,因为这些信息来自工作……我检查的是,出于某种原因,javascript处理程序没有拦截表单提交,我在脚本中放置的警报从未执行过(请参见生成的代码中的)。这就是我要找的。提交的表单通过了验证吗?AJAX调用正在启动吗?我完全不知道它,我怎么知道我是否通过了验证?我不这么认为。告诉我如何知道它。控制器中的PerformTasks操作已达到,但我认为它不是通过AJAX脚本实现的,而是通过表单提交实现的:@using(Html.BeginForm(“PerformTasks”,“Tests”,FormMethod.Post,htmlAttributes:new{id=“frm”})),因为我在脚本中放置了警报,但它们从未被触发。我使用的唯一验证是在脚本中使用以下行:$(“#frm”).validate();if($(“#frm”).valid()){…另外,我已经在脚本的“选项完全成功错误”中添加了警报,但从未发布过。你能同时发布生成的HTML吗?我刚刚发布了呈现视图的一部分重要部分。请告诉我你感兴趣的部分。我无法发布所有信息,因为这些信息来自工作…我已经发布了ecked是由于某种原因javascript处理程序没有截获表单提交,我在脚本中放置的警报永远不会执行(请参见生成的代码)。这就是我要找的。提交的表单通过了验证吗?AJAX调用正在启动吗?我完全不知道它,我怎么知道我是否通过了验证?我不这么认为。告诉我如何知道它。控制器中的PerformTasks操作已达到,但我认为它不是通过AJAX脚本实现的,而是通过表单提交实现的:@using(Html.BeginForm(“PerformTasks”,“Tests”,FormMethod.Post,htmlAttributes:new{id=“frm”})),因为我在脚本中放置了警报,但它们从未被触发。我使用的唯一验证是在脚本中使用以下行:$(“#frm”).validate();if($(“#frm”).valid()){…我还在脚本的“选项”“完全成功错误”中添加了警报,但从未出现过。
    <script type="text/javascript">
        $(document).ready(function(){
            $("#frm").submit(function (event) { 
                var form = $(evt.currentTarget);
    
                if(!form.validate().valid()) // you'll need to check this line
                    return false;
    
                 PerformTask();
                 event.preventDefault();
                 return false;
            });
    
        });
    </script>