【发布时间】:2012-10-30 00:26:49
【问题描述】:
所以我有一个与jQuery Form plugin 挂钩的基本评论表单(只有成员可以发布,所以没有姓名/电子邮件字段):
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script src="/assets_site/js/jquery.form.min.js"></script>
<script>
$(document).ready(function(){
function ajaxReturn(data) {
var messageContainer = $('.alert-box');
var messageBody = $(data);
messageContainer.html(messageBody);
}// ajaxReturn(data)
$('.member-review').ajaxForm({
success: ajaxReturn
});
});
</script>
</head>
<body>
{exp:channel:entries
channel='products'
limit='1'
disable='categories|member_data|pagination'
}
{exp:comment:form
channel='products'
form_class='member-review'
return='notifications/success'
}
<div class="alert-box">
{!-- Ajax Form Errors --}
</div><!--.alert-box-->
<label for="comment">Tell others what you think</label>
<textarea name="comment" rows="8" class="required" id="comment"></textarea>
<input type="submit" value="Submit">
{/exp:comment:form}
{/exp:channel:entries}
</body>
</html>
而且,就本演示而言,我的成功模板再简单不过了:
<p>Sumission Successful!</p>
很遗憾,当我提交完整的表单时,没有返回任何数据。如果我将 console.log($(data)); 添加到 ajaxReturn 函数,我会得到一个空字符串。评论成功提交到数据库,只是返回模板好像没有成功。
真的不知道为什么会这样。它正确返回错误消息,而不是成功模板。
EE v2.5.3
更新: Here's a video 涵盖了我正在尝试做的基础知识。我之前在之前的 EE 版本上已经成功完成了,所以我想知道他们最近是否更改了某些内容以使其不再工作?
【问题讨论】:
-
您是否检查了 firebug/chrome 网络选项卡以查看向您的 ajax 调用返回的 HTTP 响应?截图会很有帮助。也可以试试
console.log(data),而不是用$()包装。 -
@AdrianMacneil 我对网络选项卡不是超级好,但是如果我在打开网络选项卡的情况下提交完整的表单,“响应”选项卡是空白的。
console.log(data)不返回任何内容,而console.log($(data))返回一对空括号 ([])。相反,如果我提交一个空白表单并强制出错,我将获得 EE 通知模板的完整 HTML。你具体想要什么截图? -
实际上,现在我认为这可能正是您通过 AJAX 发布表单时 EE 的工作方式。请参阅下面的更详细的答案。
标签: jquery ajax expressionengine jquery-forms-plugin