使用Ajax解析ExpressionEngine错误模板

时间:2012-11-07 20:04:55

标签: jquery ajax expressionengine

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

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

的内容
$('.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'似乎没有什么区别。

有什么想法?这件事已经让我年复一年,这真令人沮丧。

1 个答案:

答案 0 :(得分:4)

data.find('#content');

无效,因为数据不是jQuery对象。回复的回复是什么样的?如果你成功做了一个console.log(数据),你会得到什么?