Javascript jQuery重定向到另一个文件
成功登录后,我正在尝试指向另一个文件。然而,在显示登录成功警报后,我似乎无法转到b.html。这似乎是保持在同一页。我尝试了document.location.href、window.location.replace,但似乎不起作用Javascript jQuery重定向到另一个文件,javascript,jquery,html,cordova,Javascript,Jquery,Html,Cordova,成功登录后,我正在尝试指向另一个文件。然而,在显示登录成功警报后,我似乎无法转到b.html。这似乎是保持在同一页。我尝试了document.location.href、window.location.replace,但似乎不起作用 <script> window.onload = function() { document.addEventListener("deviceready", init, false); } function in
<script>
window.onload = function() {
document.addEventListener("deviceready", init, false);
}
function init() {
document.getElementById("btnSave").addEventListener("click", saveData, false);
document.getElementById("btnGet").addEventListener("click", getData, false);
}
function getData() {
var email1 = document.getElementById("email1").value;
var pass1 = document.getElementById("password1").value;
var email2 = window.localStorage.getItem("email");
var pass2 = window.localStorage.getItem("pass");
if (email1 == email2 && pass1 == pass2) {
alert("Login successfully");
window.location.href = "/b.html";
} else {
alert("Invalid login credentials");
}
}
</script>
<form class="login-form">
<input type="email" id="email1" name="email1" placeholder="Email Address" required/>
<input type="password" id="password1" name="password1" placeholder="Password" required/>
<button id="btnGet" type="submit" name="submit">Login</button>
</form>
重定向不起作用的原因是,单击“登录”按钮会提交表单。这是web浏览器的正常行为。在您的情况下,您需要防止这种默认行为 使用jQuery,您可以这样做:
$('form.login-form').submit((e) => {
e.preventDefault();
});
(() => {
let form;
function init() {
form = document.querySelector('login-form');
if (!form) {
throw new ElementNotFoundException();
}
form.addEventListener('submit', onSubmitHandler);
}
function onSubmitHandler(e) {
e.preventDefault();
// get values, validate...
window.location.href = 'b.html';
}
init();
});
由于您的代码中根本没有使用jQuery,您可能会对这样一个版本感兴趣:
form.addEventListener('submit', e => {
e.preventDefault();
});
另一种解决方案是不向登录按钮添加type=submit属性
但是你能做的最好的事情,互联网用户习惯的就是在提交表单后重定向用户。然后,这不仅在用户单击按钮时有效,而且在用户按下ENTER键时也有效
那么您的代码应该如下所示:
$('form.login-form').submit((e) => {
e.preventDefault();
});
(() => {
let form;
function init() {
form = document.querySelector('login-form');
if (!form) {
throw new ElementNotFoundException();
}
form.addEventListener('submit', onSubmitHandler);
}
function onSubmitHandler(e) {
e.preventDefault();
// get values, validate...
window.location.href = 'b.html';
}
init();
});
重定向不起作用的原因是,单击“登录”按钮会提交表单。这是web浏览器的正常行为。在您的情况下,您需要防止这种默认行为 使用jQuery,您可以这样做:
$('form.login-form').submit((e) => {
e.preventDefault();
});
(() => {
let form;
function init() {
form = document.querySelector('login-form');
if (!form) {
throw new ElementNotFoundException();
}
form.addEventListener('submit', onSubmitHandler);
}
function onSubmitHandler(e) {
e.preventDefault();
// get values, validate...
window.location.href = 'b.html';
}
init();
});
由于您的代码中根本没有使用jQuery,您可能会对这样一个版本感兴趣:
form.addEventListener('submit', e => {
e.preventDefault();
});
另一种解决方案是不向登录按钮添加type=submit属性
但是你能做的最好的事情,互联网用户习惯的就是在提交表单后重定向用户。然后,这不仅在用户单击按钮时有效,而且在用户按下ENTER键时也有效
那么您的代码应该如下所示:
$('form.login-form').submit((e) => {
e.preventDefault();
});
(() => {
let form;
function init() {
form = document.querySelector('login-form');
if (!form) {
throw new ElementNotFoundException();
}
form.addEventListener('submit', onSubmitHandler);
}
function onSubmitHandler(e) {
e.preventDefault();
// get values, validate...
window.location.href = 'b.html';
}
init();
});
可能位置href未正确写入,请替换window.location.href=/b.html;到window.location.href=b.html 可能位置href未正确写入,请替换window.location.href=/b.html;到window.location.href=b.html 在域中使用完整的URL并检查。1.不要在表单中调用任何名称=提交。2.如果您提交表单,您将离开页面,脚本可能没有时间执行,或者表单将不会向服务器发送任何内容。而是让表单操作重定向。3.在location.href-PS中使用完全限定的URL:如果需要在处理程序中执行JavaScript,请将按钮更改为type=button,否则请在服务器上执行操作或取消提交。但是,如果我有表单操作重定向,即使登录失败,它是否仍会将用户指向该页面?您将凭据保存在本地存储中的何处?根据脚本,如果您已成功地将任何内容存储在localstorage中,并且与您填写的内容相同,则会重定向您。任何人都可以直接进入b.html任何方式是的,这就是我所想的,我已经成功地输出了成功登录,但它似乎并没有去b.htmlus完整的URL与域和检查。1.不要在表单中调用任何名称=提交。2.如果您提交表单,您将离开页面,脚本可能没有时间执行,或者表单将不会向服务器发送任何内容。而是让表单操作重定向。3.在location.href-PS中使用完全限定的URL:如果需要在处理程序中执行JavaScript,请将按钮更改为type=button,否则请在服务器上执行操作或取消提交。但是,如果我有表单操作重定向,即使登录失败,它是否仍会将用户指向该页面?您将凭据保存在本地存储中的何处?根据脚本,如果您已成功地将任何内容存储在localstorage中,并且与您填写的内容相同,则会重定向您。任何人都可以直接进入b.html任何方式是的,这就是我所想的,我已经成功地输出了成功登录,但它似乎没有进入b.html。你确定b.html在你的html所在的同一目录中吗?是的,我尝试了header,它可以工作,不适用于此jquery尽管您确定b.html与您的html位于同一目录中吗?是的,我尝试了header,但它可以工作,但不适用于此jquery