2

我正在尝试使用jQuery Form plugin将 Ajax 添加到我的 ExpressionEngine 注册表单中。大多数表单错误都使用Profile:Edit处理并以 JSON 格式返回,我在解析这些错误时没有遇到重大问题。Profile:Edit 未处理的唯一错误是有人尝试使用仍处于“待处理”状态的电子邮件地址重新注册。为此,我得到了HTML 格式的标准 EE 错误模板

我想做的是设置一个 jQuery$.each()循环并输出错误列表项。但是当我尝试解析 HTML 时,我在控制台中得到了奇怪的数据。即使是一个非常简单的 jQuery 函数也不能像我期望的那样工作。例如,使用这段代码,我希望取回#contentdiv 的内容:

$('.myForm').ajaxForm({
    success: function(data){
        var theContent = data.find('#content');
        console.log(theContent);
    }
});

但我在控制台中得到了这个:

Uncaught TypeError: Object
<!-- Full HTML of Error Template -->
has no method 'find' 

如果我使用.filter()而不是.find().

如果我用选择器语法包装data,像这样:

$('.myForm').ajaxForm({
    success: function(data){
        var theContent = $(data).find('#content');
        console.log(theContent);
    }
});

我在控制台中得到了这个:

[prevObject: e.fn.e.init[9], context: undefined, selector: "#content"]
    context: undefined
    length: 0
    prevObject: e.fn.e.init[9]
        0: #text
        1: <title>
        2: #text
        3: <meta>
        4: #text
        5: <style>
        6: #text
        7: <div>
        8: #text
        length: 9
    __proto__: Object[0]
    selector: "#content"
    __proto__: Object[0]

这不是我所期望的,我也不知道如何处理它。

设置dataType为 'html' 似乎没有什么区别。

有什么想法吗?这件事让我老了很多年,真是令人沮丧。

4

1 回答 1

4
data.find('#content');

不起作用,因为 data 不是 jQuery 对象。返回的响应是什么样的?如果您在成功后执行 console.log(data),您会得到什么?

于 2012-11-07T20:36:10.070 回答