Javascript 用户取消离开后,如何保持在同一页面而不刷新?
我有一个网页test.php,其中包含:Javascript 用户取消离开后,如何保持在同一页面而不刷新?,javascript,html,Javascript,Html,我有一个网页test.php,其中包含: 表格 “提交”按钮将答案发送至表格 一个“离开”按钮,允许用户离开页面(并转到“Leave.php”),而无需填写表单 一种控制器,当用户单击Submit时控制数据,当一切正常时重定向到别处 我希望用户在重定向之前确认他想离开。以下是我目前的代码: 功能确认(){ var result=confirm(“您真的想离开此页面吗?”); 如果(结果){ window.location='leave.php'; } 否则{ 返回FALSE; } } 您可
- 表格
- “提交”按钮将答案发送至表格
- 一个“离开”按钮,允许用户离开页面(并转到“Leave.php”),而无需填写表单
- 一种控制器,当用户单击Submit时控制数据,当一切正常时重定向到别处
功能确认(){
var result=confirm(“您真的想离开此页面吗?”);
如果(结果){
window.location='leave.php';
}
否则{
返回FALSE;
}
}
您可以使用JavaScript提交表单。首先,将两个按钮更改为
type=“button”
。使用type=“submit”
提交导致错误的按钮。然后编写一个简单的函数来提交表单
功能确认(){
var result=confirm(“您真的想离开此页面吗?”);
如果(结果){
window.location='leave.php';
}
否则{
返回FALSE;
}
}
函数submitForm(){
var form=document.getElementById('form');
表单提交();
}
您可以使用JavaScript提交表单。首先,将两个按钮更改为
type=“button”
。使用type=“submit”
提交导致错误的按钮。然后编写一个简单的函数来提交表单
功能确认(){
var result=confirm(“您真的想离开此页面吗?”);
如果(结果){
window.location='leave.php';
}
否则{
返回FALSE;
}
}
函数submitForm(){
var form=document.getElementById('form');
表单提交();
}
如果您必须提交按钮,每个按钮都将提交您的表单。因此,重定向到
“test.php”
和“leave.php”
之间存在冲突。在这种情况下,来自表单的操作总是第一位的
功能确认(){
var result=confirm(“您真的想离开此页面吗?”);
如果(结果){
window.location='leave.php';
}
否则{
返回FALSE;
}
}
如果您必须提交按钮,每个按钮都将提交您的表单。因此,重定向到
“test.php”
和“leave.php”
之间存在冲突。在这种情况下,来自表单的操作总是第一位的
功能确认(){
var result=confirm(“您真的想离开此页面吗?”);
如果(结果){
window.location='leave.php';
}
否则{
返回FALSE;
}
}
这是一个工作版本。我认为问题在于返回语句“return confirmation()”:
功能确认(e){
var result=confirm(“您真的想离开此页面吗?”);
如果(结果){
window.location='/leave.php';
}否则{
返回FALSE;
}
}
这是一个工作版本。我认为问题在于返回语句“return confirmation()”:
功能确认(e){
var result=confirm(“您真的想离开此页面吗?”);
如果(结果){
window.location='/leave.php';
}否则{
返回FALSE;
}
}
第2页。换成2。实际上,在查看问题时,您甚至不需要提交功能(尽管它对提交前的处理很有用),只需将“离开”按钮更改为键入按钮即可。它就像一个符咒。非常感谢。如果可以的话,我可以问你为什么我的解决方案不起作用吗?你的按钮类型是submit
,因此在调用confirmation()
函数后,它会提交,但你将它设置为returnfalse
以刷新表单。实际上,在查看问题时,你甚至不需要提交函数(虽然这对提交前的处理很有用),只需将“离开”按钮更改为键入按钮
Awesome。它就像一个符咒。谢谢!如果可以的话,我可以问你为什么我的解决方案不起作用吗?你的按钮是键入提交
,所以在确认()
函数被调用,它会提交,但您将其设置为返回false
,因此它会刷新表单。太好了。非常感谢您的修复和解释。太好了。非常感谢您的修复和解释。
<form method="post" action="test.php">
<input type="text" name="answer" id="answer" placeholder="Type your answer here">
<input type="submit" name="submit_answer" value="Submit your answer">
<input type="submit" name="leave" value="Leave this page" onClick="confirmation(); return false;">
</form>
<script>
function confirmation(e){
var result = confirm("Do you really want to leave this page?");
if (result) {
window.location = '/leave.php';
} else {
return FALSE;
}
}
</script>