在phonegap页面中导航

时间:2014-08-24 22:37:38

标签: javascript jquery cordova

我有一个phonegap应用程序,我在一些指南中读到只为所有“页面”创建一个html文件,这是index.html文件。

在这个文件中,我有一些div,data-role属性设置为page,所以每个div实际上是页面视图。

所以我有主div,我们称之为“div a”,它有一个注册按钮,当用户点击它时,他会转到另一个div:“div b”(这是注册页面)。

在注册div(页面)我正在检查用户输入了所有必需的数据,如果他没有填写其中一个输入,我想留在这个页面(div b)上的数据是进入了。

所以我做的是:首先提醒用户某些字段缺失,然后使用此代码保留在注册页面(div b)

$.mobile.navigate("#divB"); 

但是在警报消息消失后​​,它会导航到主div(div a),然后导航到所需的div(div b)。

原因是什么?

更新:html文件: 主要div:     

    <div data-role="header">
         <h1> Welcome </h1>
    </div>

    <div data-role="content">
         <form id="loginForm">
               <div data-role="fieldcontain" class="ui-hide-label">
                    <input type = "text"     name = "username" id = "uname" value = "" placeholder = "Username" />
                    <input type = "password" name = "password" id = "pass"  value = "" placeholder = "Password" />
                </div>

                <input type="submit" value="Login" id="loginBtn" onclick = 'login()'>
          </form>

          <a href = "#registration" id = 'registerBtn' class = "ui-btn-a" data-role = "button">Register</a>
     </div>
</div>

第二个div:

<div data-role = "page" id = "registration" data-theme  = "b">
    <div data-role = "header">
         <h1> Registration Page</h1> 
    </div>

    <div data-role = "content">

        <form id="registrationForm">
               <div data-role="fieldcontain" class="ui-hide-label">

                    <input type = "text"     name = "email"       id = "uname"    value = "" placeholder = "Username"/>
                    <input type = "password" name = "password"    id = "pass"     value = "" placeholder = "Password" />

                </div>

                <input type = "submit" value = "Register" id = "registerBtn" onClick = 'register()'>
          </form>

    </div>

</div>

javascript代码:

function register()
{
   var uname = document.getElementById('uname').value;
   var pass  = document.getElementById('pass').value;

   if (uname == "" || pass == "")
   {
         navigator.notification.alert("One of the fields is empty",dismissed,"Error","OK");
         $.mobile.navigate("#registration");
   }
   else
   {
       $.mobile.navigate("#userPage");
   }
}

正如你所看到的,在同一个html文件中有2个div,它在phonegap应用程序中就像2个不同的页面,所以如果用户忘记填充某些字段,当我按下注册按钮时,它会发出警告然后返回主div(第一个),然后回到注册div,我希望它保持在同一个div,即使用户忘记填充某些字段,即使它是警报。

还有一件事,如果字段很好,并且用户按下注册按钮,它也会先进入第一个div,然后转到“userPage”div。为什么?!? 为什么它没有正确到达所需的div?为什么它看起来像从开始加载页面然后转到正确的div?

0 个答案:

没有答案