每次提交时,Ajax 表单开始和成功处理程序的调用次数会连续增加
Ajax form begin and success handlers are called successively more times with each submit
为什么我的jquery ajax表单在第一次提交时提交一次,在第二次提交时提交两次...?
从 ASP MVC 3 预览版更新到 Beta 版后提交的表单两次
ASP.NET 阿贾克斯。BeginForm 发送多个请求
我的窗体具有 OnBegin 和 OnSuccess 处理程序,如下所示。 我第一次提交它工作正常。 第二次我提交OnBegin和OnSuccess时被调用两次。 第三次调用事件处理程序三次,依此类推。
@using (Ajax.BeginForm("SaveTaxpayer", "Taxpayer",
null,
new AjaxOptions { HttpMethod = "Post", OnBegin = "SaveTaxpayerBegin", OnSuccess = "SaveTaxpayerSuccess", OnFailure = "radarApp.formSubmitFailure" },
new { id="tpForm", style = "form-horizontal" }))
{...}
我在SO上发现了几篇描述类似问题的帖子,事实证明开发人员多次加载jquery不引人注目。 我没有多次加载 jquery。 我相信如果我是事件处理程序,每次都会触发两次。我只在我的布局页面中加载 jQuery,并且该页面被调用一次。
我还发现了一个帖子,回答者建议
$("#myform").unbind('submit');
当放置在OnBegin,OnSuccess或两者中时,这对我不起作用。
一些海报也面临着类似的问题,并解决了返回部分视图与视图的问题。 我正在返回一个 Json 对象,所以我也不认为这是我的问题。
我已经从表单事件处理程序中删除了所有代码以进行调试:
function SaveTaxpayerBegin() {
debugger;
}
function SaveTaxpayerSuccess(response) {
debugger;
$.get(response.RedirectURL, function (data) { $('#content').empty().html(data); }, 'html');
}
我的控制器返回一个简单的 Json 对象,该对象具有不言而喻的字符串属性:重定向URL。
"#content"是 index.cshtml 中的一个div,它是我的单页应用程序中所有部分页面的内容div。 托管我的表单的页面使用相同的 $.get 调用...您在上面的"保存纳税人成功"功能中看到的。 这就是为什么这个问题对我来说如此困惑的原因。 每次加载我的页面时,内容div 都会完全被吹走。 看起来jquery或某些javascript类正在保留表单提交事件处理程序。
另请注意,我在我的 $.get 成功处理程序中调用 .empty()(在加载我的表单的页面中)。 .empty() 的 jquery 文档说:"为了避免内存泄漏,jQuery 在删除元素本身之前,会从子元素中删除其他构造,例如数据和事件处理程序。 这似乎没有发生。
你已经添加了jquery.unobtrusive-ajax.js三次。它也发生在我身上。
签入捆绑包配置"~/ui/js/jquery.unobtrusive.*",并在您的页面中再次添加了jquery.unobtrusive-ajax.js
- 如何从Java/scala调用js美化程序
- 如何远程检查JavaScript应用程序的函数调用堆栈
- 在同一个javascript事件处理程序中调用不同的函数
- 为什么这个函数调用会破坏程序并导致未定义的变量
- Sinon Spy不使用Javascript调用或应用程序
- 未为路由器应用程序调用Node.Js的回调
- 无法在Windows 10 Cordova应用程序中从Web视图进行ajax调用
- 为什么没有调用我的流错误处理程序
- 使用jquery调用vaadin应用程序表单php
- 向调用全局javascript函数的对象添加处理程序
- Angular.js指令格式化程序只调用过一次,或者如何告诉ngModel表现得像watchCollection
- 直接在DOM事件处理程序中调用作用域函数的最短方法是什么
- 如何使应用程序加载独立于web服务调用
- 当调用JS函数具有alert()时,应用程序将被冻结
- Backbone应用程序中的多个jQueryAjax调用会混淆数据
- 从node.js应用程序调用Mongoose Model.save()时挂起
- 如何在启动时在PhoneGap应用程序中调用一些Objective C代码
- 在调用程序中获取函数从文件中读取的值:Windows应用商店JavaScript应用程序
- 如何在android webview中调用程序员定义的javascript函数
- 将此函数中的范围更改为使用 jquery 或 vanilla JavaScript 的调用程序