为什么我的ajax在提交用@HtmlRenderPartial加载的表单时只调用fire一次
Why does my ajax call fire only once when submitting forms loaded with @HtmlRenderPartial
我有一个索引页面,我用两个局部视图加载它。在加载的每个部分视图上都有一个ajax调用,用于按日期过滤内容。问题是ajax只成功触发一次,随后的表单提交只会导致页面的完全刷新,即ajax没有触发。我将每个脚本移到一个单独的文件中,并在我在Layout页面中调用的捆绑包中引用它。再次尝试会产生相同的结果,即ajax事件只触发一次,当再次单击提交按钮时,不会发生任何事情。下面是我的代码
Index.Cshtml
@{
ViewBag.Title = "";
Layout ="~/Views/Shared/_Layout.cshtml";
}
<h2>TRANSACTIONS</h2>
@Html.Action("IndexGrid", "Transactions")
<h2>BREAKDOWN</h2>
@Html.Action("LoanBreakDown", "Transactions")
<div class="ajaxModal"><!-- Place at bottom of page --></div>
IndexGrid.cshtml
<form action="/transactions/index" method="post" id="filterByDate">
<td colspan="3">
<label>START:</label> <input type="date" name="StartDate" id="StartDate" />
</td>
<td colspan="3">
<label>END:/label> <input type="date" name="EndDate" id="EndDate" />
</td>
<td colspan="3">
<input type="submit" value="SEARCH" class="btn btn-default submit" />
</td>
</form>
LoanBreakDown.chtml
<form action="/transactions/LoanBreakDown" method="post" id="searchloan">
START: <input type="date" name="StartDate" id="StartDate" />
END: <input type="date" name="EndDate" id="EndDate" />
<input type="submit" value="SEARCH" class="btn btn-default" />
</form>
GridDateFilter.js
$(document).ready(function() {
$("#filterByDate").submit(function() {
event.preventDefault();
$("#TransactionTable").empty();
$.ajax({
type: "POST",
url: "/Transactions/IndexGrid",
data: $(this).serialize(),
dataType: "html",
success: function(data) {
$("#TransactionTable").html(data);
}
});
});
});
分解日期过滤器.js
$(document).ready(function () {
$("#searchloan").submit(function () {
event.preventDefault();
//$(".loading").html("Processing your request...");
$("#loadbreakdown").empty();
$.ajax({
type: "POST",
url: "/Transactions/LoanBreakDown",
data: $(this).serialize(),
dataType: "html",
success: function (data) {
$("#loadbreakdown").html(data);
}
});
});
});
GridDateFilter.js负责IndexGrid.cshtml,而BreakdownDateFilter.jss负责LoanBreakDown.chtml。请注意,这两个视图都加载到主页中,即带有@Html.RenderPartial的index.cshtml页面,脚本在调用jquery后包含在布局页面中。
好的,所以我终于解决了这个问题。在chrome的开发工具中搜索了一段时间后,虽然我对javascript不太了解,但我注意到负责搜索功能的表单嵌入了我用ajax帖子的结果替换的div中,因此,dom发生了变化,当我再次提交时,它不再针对同一表单。解决方法是将表单从div和Eureka中移出!它奏效了。
相关文章:
- 使用html表单中的参数调用JavaScript函数
- angularjs-控制器在表单提交时未调用
- 为什么我的ajax在提交用@HtmlRenderPartial加载的表单时只调用fire一次
- 如何使用javascript验证表单中的数据,然后调用php页面
- 使用jquery调用vaadin应用程序表单php
- 调用<表单>
- 在带有参数列表的表单submit上调用一个方法
- 在表单提交按钮的点击事件中调用函数时发生引用错误
- 表单提交没有'调用return false后无法工作
- '这'表单中的关键字onsubmit调用
- 如何从php中的输入表单调用Javascript函数,以更改HTML
- 无法从JS表单调用servlet doPost方法
- 从联系表单 7 调用 js 函数
- 无法从html表单调用php
- 如何使用java脚本或Jquery从表单调用spring控制器方法
- Joomla网站-有一个表单调用javascript函数-但它也重定向我的url -为什么
- 从动作表单调用jQuery
- Knockout.js无法在mvc中从html表单调用
- AJAX为HTML表单调用PHP文件无效
- HTML表单调用javascript函数