在我的 jquery 移动网络应用程序中,我在用户导航到的每个页面上都包含一个登录表单。我这样做是为了让用户可以随时登录,而不仅仅是在起始页上。
由于我使用自己的 Ajax 逻辑执行表单提交过程,因此我在表单上禁用了 Jquery Mobile Ajax 逻辑data-ajax="false"
。Ajax 逻辑是用 JavsScript 实现的。在起始页上一切正常,但如果我导航到另一个页面(通过起始页上的链接),我的 JavaScript 不再触发,但表单是通过 Jquery mobile 自己的 Ajax 逻辑提交的(因此它不会' t 有效)。
代码(我在每一页都包含)如下所示:
<div data-role="fieldcontain">
<form id="loginForm" data-ajax="false" onsubmit="login();return false;">
<div data-role="fieldcontain">
<h2>Login</h2>
<label for="textinput1">
Email
</label>
<input name="emaillogin" id="textinput1" placeholder="Email" value=""
type="text">
<label for="textinput2">
Password
</label>
<input name="passwordlogin" id="textinput2" placeholder="Password" value=""
type="password">
</div>
<input type="submit" data-icon="ok" data-iconpos="left" value="OK">
<input type="hidden" name="inputCase" value="login">
</form>
</div>
JavaScript(就在上述代码的末尾)如下所示:
<script>
function login()
{
var request = $.ajax({
url: "../case.php",
type: "POST",
data: $('#loginForm').serialize(),
dataType: "json"
});
request.done(function(msg) {
if(parseInt(msg.status)==1)
{
//top_notification("Willkommen zurück!","success");
window.location="index.php";
}
else if(parseInt(msg.status)==0)
{
alert(msg.text);
}
else {
alert("Gibts nicht");
}
});
request.fail(function(jqXHR, textStatus) {
alert("Fehler");
});
}
</script>
也许我弄错了 Jquery Mobile“我们只page-div
用新 URL 中的另一个替换page-div
”的事情,但我这样理解,我的整个 JS 逻辑也将从新资源中提取。
编辑谢谢。我已经更新了我的 JS 代码,现在看起来像这样:
<script>
$(document).on('pageinit', '[data-role="page"]', function(){
$(document).on('click','#submit-btn',function() {
login();
});
});
function login()
{
var request = $.ajax({
url: "../case.php",
type: "POST",
data: $('#loginForm').serialize(),
dataType: "json"
});
request.done(function(msg) {
if(parseInt(msg.status)==1)
{
//top_notification("Willkommen zurück!","success");
window.location="index.php";
}
else if(parseInt(msg.status)==0)
{
alert(msg.text);
}
else {
alert("Gibts nicht");
}
});
request.fail(function(jqXHR, textStatus) {
alert("Fehler");
});
}
</script>
但。现在,当我导航到 3 个页面,然后提交登录表单时,我将收到该功能的 3 个警报(即使我仅导航到 1 个站点)request.fail
......之后登录正确!