我希望我在这里缺少一些简单的东西。我有一个CakePHP网站,我正在使用jQuery mobile。我认为CakePHP可能与它有关,但我不确定。
无论如何,我在我的视图页面上创建了一个用于添加评论的表单。 Ajax调用在加载的第一个页面上按预期工作,但导航到任何其他页面会阻止提交数据。控制台仍然记录数据'每次我按下按钮(使用' pagebeforeshow'按照其他地方的建议),但它似乎是来自原始加载页面的数据(我知道这是因为我正在调试$ this->请求 - >表单操作页面上的数据。)
显然,我必须要重置"在页面移动时以某种方式表单,但我不确定如果没有刷新页面这是否可行。我知道" data-ajax" =" false"和" rel" ="外部"这可以作为最后的手段,但我想尽量避免刷新页面。
有什么建议吗?谢谢。
这是我用于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>
答案 0 :(得分:0)
这是我基本缺乏理解。经过大量搜索后,这篇简单的帖子非常有用:
Jquery Mobile Javascript not working on ajax load
基本上,我正在使用ID作为一切 - 当我切换到班级名称时,它一帆风顺。