我们正在编写ASP.NET MVC应用程序。默认情况下,如果客户端浏览器已启用JavaScript,处理程序为每个页面上的形式设置,通过JavaScript,以便成为一个发送提交下一个Ajax“管道”(逐步增强)。

但是,对于一个形式(页面的几个上),我想这个处理程序被绕过/忽略。有没有一种简单的方法来做到这一点?或许通过重写通过直接在DOM指定自己onsubmit事件处理程序 - ?或一些其它方法

我们使用jQuery,所以这些库提供给我。

有帮助吗?

解决方案

class="oldschool" -

我将最有可能通过分配一些独特的属性,与你的标准(就是那个不应该有AJAX行为)打破了形式解决这个问题。在JavaScript代码,挂接在表单上的提交事件处理程序,那么我会确保排除任何形式有特殊标记:

$('form:not(.oldschool)').submit(function() {
    // Do fancy AJAX stuff
});

更新:为了的的改变任何外部JavaScript文件,并有通过改变HTML标记简单介绍了新的行为,可考虑做这样的事情:

<form ... onsubmit="if (typeof $ == 'function') $(this).unbind('submit');">

这是毫无美感,但它似乎完成工作 - 至少在浏览器中我可以在这里找到。

其他提示

虽然我不知道我明白你的意思是“从DOM”我想你不能改变原有的AJAX / JS代码,但你应该能够在某个地方插入一个小script标签,它的代码后运行用于设置AJAX提交处理程序。

进一步假设该处理程序集的形式$("form").submit(...)或类似可以使用此

$('selectorForYourForm').unbind('submit');

作为该原始js代码之后运行,将解除绑定任何处理程序原码为这种形式的提交操作设置。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top