0

簡単なログインフォームがあります。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>

私はたくさんのことを試みました。ご覧のとおり、コード内のページを変更するための2つのオプションがあり、1つはコメントアウトされています。コメントアウトされたものは、何も起こりません。アクティブなコードはURLをに変更しますが、ログインフォームmobile.home.phpだけに変更します。slides up両方ともmobile.login.phpページmobile.home.phpdivがありますid's

私はこれを理解できないようです、何かアイデアはありますか?

4

1 に答える 1

1

これはあなたの問題です:

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

e.preventDefault();を使用しないでください。ここでは、正常な移行を妨げます。

簡単な例を次に示します: http://jsfiddle.net/WWfEq/

コメント/コメント解除e.preventDefault(); 違いを見るために。

于 2013-01-30T16:47:55.683 に答える