3

使用 jQuery 将 AJAX 功能连接到现有表单并允许错误处理回调的最佳方法是什么。

jQuery.ajax(...)内置函数具有以下(有用的)回调函数:

发送前

完全的

数据过滤器

错误

成功

我以为我已经用jQuery.Form插件找到了答案,但是出于某种疯狂的原因,它们不允许您访问错误回调!除了这个遗漏之外,它似乎非常有用。

总的来说,我真的很沮丧,因为那里有大量文章jQuery.get在他们推荐之前推荐使用jQuery.ajax。回顾一下:get()没有错误回调,但是ajax()有。

在我看来,你应该总是使用ajax(),因为你总是应该有某种错误处理逻辑。

是否还有其他不错的插件——尤其是与 ASP.NET-MVC 配合得很好的插件,我应该使用它来让所有东西更容易连接?

4

6 回答 6

6

这是我从我的一个项目中复制的一个非常简单的片段,只是稍微修改了一下(几乎没有经过测试)。让我知道这个是否奏效。

(function() {
$.fn.ajaxify = function(options) {
    $(this).submit(function(e) {
        var form = $(this);
        $.ajax({
            type : form.attr('method'),
            url : form.attr('action'),
            data : form.serialize(),
            error : options.error,
            success : options.success,
            dataType : "script"
        });

        return false;
    });
}
})();

使用它:

$('form').ajaxify(
    {success: success_method_name, 
    error: error_method_name});
于 2009-03-11T05:21:18.037 回答
3

根据此页面:

http://www.malsup.com/jquery/form/#api

“请注意,选项对象也可用于将值传递给 jQuery 的 $.ajax 方法。如果您熟悉 $.ajax 支持的选项,您可以在传递给 ajaxForm 和 ajaxSubmit 的选项对象中使用它们。”

这包括“错误”处理程序参数,但是我无法让它工作......

富有的

于 2009-04-10T18:32:26.977 回答
1

这可能不再是问题了,因为我刚刚连接了一个错误回调就好了。

例如:

$("form#new_asset").ajaxForm({
  error: function(a, b, c) {
    alert('error')
  }
});
于 2009-12-30T12:01:46.460 回答
0

您是否尝试过通过$.ajaxError()设置处理程序?

于 2009-03-11T05:24:08.513 回答
0

刚刚经过测试,Chris O'Sullivan 确实是正确的,尽管目前我认为它是无证的。

于 2010-06-04T16:25:29.023 回答
-2

为什么不使用 JSON?您可以从表单中收集数据并发送 JSON 请求。

于 2009-03-11T05:14:59.797 回答