我有一个简单的登录表单。 2个php文件,mobile.login.php
和mobile.home.php
。您登录后如果设置了cookie,您现在可以访问主页了。登录系统可以工作,但页面不会更改为mobile.home.php
,它只会再次显示登录表单。表单是Ajax,这是代码:
<script type="text/javascript">
$('#login').live('pageinit', function() {
$('form').live('submit', function(e){
e.stopPropagation();
e.preventDefault();
$.post($(this).attr('action'), $(this).serialize(), function(data){
if(data.success) {
//$.mobile.changePage($('#home'), { transition: 'slideup'});
$.mobile.changePage('mobile.home.php', 'slide', false, true);
e.preventDefault();
} else {
alert('Login failed.');
return false;
}
}, 'json');
});
});
</script>
我尝试了很多东西。正如您所看到的,我有两个选项来更改代码中的页面,其中一个被注释掉了。被注释掉的那个,没有任何反应。活动代码会将网址更改为mobile.home.php
,但只会再次slides up
登录表单。 mobile.login.php
和mobile.home.php
都有页面div id's
。
我似乎无法弄明白这一点,任何想法?
答案 0 :(得分:1)
这应该是你的问题:
$.mobile.changePage('mobile.home.php', 'slide', false, true);
e.preventDefault();
此处不要使用 e.preventDefault(); ,否则会阻止成功转换。
以下是一个简单示例:http://jsfiddle.net/WWfEq/
评论/取消注释 e.preventDefault(); 以查看差异。