Вызов службы Jquery Mobile никогда не происходит - PullRequest
1 голос
/ 28 января 2012

Я пытаюсь поиграть с jquery mobile, но ничего не получаю, запустив это на эмуляторе Android. Сервисный звонок никогда не срабатывает. Функция handleSubmit никогда не вызывается. Вот блог, за которым я следовал:

http://www.raymondcamden.com/index.cfm/2011/11/10/Example-of-serverbased-login-with-PhoneGap

Вот мой index.html

    <!DOCTYPE HTML>
    <html>

    <head>
        <meta name="viewport" content="width=320; user-scalable=no" />
        <meta http-equiv="Content-type" content="text/html; charset=utf-8">
        <title>Create Your Account</title>
        <meta name="viewport" content="width=device-width, initial-scale=1"> 
        <link rel="stylesheet" href="css/jquery.mobile-1.0.1.min.css" />
        <script src="js/jquery-1.6.4.min.js"></script>
        <script type="text/javascript" charset="utf-8" src="js/phonegap-1.3.0.js"></script>
        <script src="js/jquery.mobile-1.0.1.min.js"></script>
        <script type="text/javascript" charset="utf-8" src="js/main.js"></script>
    </head>

    <body onload="init();">

    <div id="loginPage" data-role="page">

        <div data-role="header">
            <h1>Sign Up</h1>
        </div>

        <div data-role="content">    

            <form id="loginForm">
            <div data-role="fieldcontain" class="ui-hide-label">
                <label for="username">Username:</label>
                <input type="text" name="username" id="username" value="" placeholder="Username" />
            </div>

            <div data-role="fieldcontain" class="ui-hide-label">
                <label for="password">Password:</label>
                <input type="password" name="password" id="password" value="" placeholder="Password" />
            </div>

            <input type="submit" value="Login" id="submitButton">
            </form>

        </div>

        <div data-role="footer">
            <h4>&copy;</h4>
        </div>

    </div>

    <script>
    $("#loginPage").live("pageinit", function(e) {
            checkPreAuth();
        });
    </script>

    </body>
    </html>

Вот main.js

    function init() {
    document.addEventListener("deviceready", deviceReady, true);
    delete init;
    }


    function checkPreAuth() {
        var form = $("#loginForm");
        if(window.localStorage["username"] != undefined && window.localStorage["password"] != undefined) {
            $("#username", form).val(window.localStorage["username"]);
            $("#password", form).val(window.localStorage["password"]);
            handleLogin();
        }
    }

    function handleLogin() {
        var form = $("#loginForm");    
        //disable the button so we can't resubmit while we wait
        $("#submitButton",form).attr("disabled","disabled");
        var u = $("#username", form).val();
        var p = $("#password", form).val();
        console.log("click");
        if(u != '' && p!= '') {
            $.post("http://10.0.2.2:9000/sample1/processsubmit", {username:u,password:p}, function(res) {
                if(res == true) {
                    //store
                    window.localStorage["username"] = u;
                    window.localStorage["password"] = p;             
                    $.mobile.changePage("some.html");
                } else {
                    navigator.notification.alert("Your login failed", function() {});
                }
             $("#submitButton").removeAttr("disabled");
            },"json");
        } else {
            //Thanks Igor!
            navigator.notification.alert("You must enter a username and password", function() {});
            $("#submitButton").removeAttr("disabled");
        }
        return false;
    }

    function deviceReady() {    
        console.log("deviceReady");
        $("#loginForm").on("submit",handleLogin);
    };

    $( document ).bind( "mobileinit", function() {
        // Make your jQuery Mobile framework configuration changes here!

        $.mobile.allowCrossDomainPages = true;
    });

Есть идеи, что мне не хватает? Я использую сервис как сервис фреймворков.

1 Ответ

1 голос
/ 31 января 2012

Я не вижу никакой функции с именем handleSubmit.

Я бы начал с установки некоторых точек останова в javascript и убедился бы, что события, которые вы ожидаете, будут инициированы.

...