0

我有一个简单的登录表单。2 个 php 文件mobile.login.phpmobile.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>

我已经尝试了很多东西。如您所见,我有 2 个选项可以更改代码中的页面,其中一个已被注释掉。被注释掉的那个,什么也没有发生。活动代码再次将 url 更改为登录表单mobile.home.phpslides up两者mobile.login.php都有mobile.home.php页面 divs id's

我似乎无法弄清楚这一点,有什么想法吗?

4

1 回答 1

1

这应该是你的问题:

$.mobile.changePage('mobile.home.php', 'slide', false, true);
e.preventDefault();

Dont use e.preventDefault(); here, it will prevent a successful transition.

Here's a simple example: http://jsfiddle.net/WWfEq/

Comment/Uncomment e.preventDefault(); to see a difference.

于 2013-01-30T16:47:55.683 回答