我有一个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?