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