我正在尝试使用jQuery Form plugin将 Ajax 添加到我的 ExpressionEngine 注册表单中。大多数表单错误都使用Profile:Edit处理并以 JSON 格式返回,我在解析这些错误时没有遇到重大问题。Profile:Edit 未处理的唯一错误是有人尝试使用仍处于“待处理”状态的电子邮件地址重新注册。为此,我得到了HTML 格式的标准 EE 错误模板。
我想做的是设置一个 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' 似乎没有什么区别。
有什么想法吗?这件事让我老了很多年,真是令人沮丧。