【发布时间】:2014-12-30 00:37:59
【问题描述】:
我希望我在这里遗漏了一些简单的东西。我有一个使用 jQuery mobile 的 CakePHP 网站。我认为 CakePHP 可能与它有关,但我不确定。
无论如何,我在视图页面上创建了一个用于添加 cmets 的表单。 Ajax 调用在加载的第一个页面上按预期工作,但导航到任何其他页面会阻止提交数据。每次按下按钮时控制台仍会记录“数据”(在其他地方推荐使用“pagebeforeshow”之后),但它似乎是来自原始加载页面的数据(我知道这一点是因为我目前正在调试 $this->请求->表单操作页面上的数据)。
显然,在跨页面移动时,我必须以某种方式“重置”表单,但我不确定在不刷新页面的情况下是否可以这样做。我知道 "data-ajax"="false" 和 "rel"="external" 可以作为最后的手段,但如果可以的话,我想避免刷新页面。
有什么建议吗?谢谢。
这是我用于 Ajax 调用的 JS
//<![CDATA[
$(document).on('pagebeforeshow', function(){
$(document).off('click', '#comment_add').on('click', '#comment_add',function(e) {
$.ajax({
async:true,
data:$("#sCommentViewForm").serialize(),
dataType:"html",
success:function (data, textStatus) {
//$('#comments').remove();
//$('<div id="comments"></div>').appendTo('#comments_container');
$("#comments").html(data).trigger('create');
//$('#comments_box').remove();
//$('<div id="comments_box"></div>').appendTo('#comments_container');
console.log(data);
},
type:"POST",
url:"commentsUsers/comment_add/<? echo $template['Template']['id']; ?>"});
return false;
});
});
//]]>
</script>
【问题讨论】:
标签: php jquery cakephp jquery-mobile