如何在表单提交后保持模态窗口打开并在同一模态窗口中显示新页面
How to keep modal window open after form submit and display new page in same modal window
我得到了一个简单的html页面,其中包含一个打开模态窗口的链接。在模态窗口中是一个表单。如何提交表单并在同一模式窗口中显示" 表单操作(测试.asp)"页面。测试.asp页面是数据库条目/感谢您填写表单页面。
<!DOCTYPE html>
<style>
#overlay {
visibility: hidden; position: absolute; left: 0px;top: 0px; width:100%; height:100%; text-align:center; z-index: 1000;
}
#overlay div {width:300px; margin: 100px auto; background-color: #fff; border:1px solid #000; padding:15px; text-align:center;
}
</style>
<script>
function overlay() {
el = document.getElementById("overlay");
el.style.visibility = (el.style.visibility == "visible") ? "hidden" : "visible";
}
</script>
<body>
<a href='#' onclick='overlay()'>Click here to show the overlay</a>
<div id="overlay">
<div>
<p>Please complete the form below.</p>
<form action="test.asp" method="post" id="contact-form">
<input type="text" name="field1"><br>
<input type="text" name="field2"><br>
<input type="submit" value="Go">
</form><br>
Click here to [<a href='#' onclick='overlay()'>close</a>]<br>
</div>
</div>
</body>
</html>
尝试使用 javascript 函数event.preventDefault()
来防止模态关闭:
function overlay() {
el = document.getElementById("overlay");
el.style.visibility =
(el.style.visibility == "visible" ? "hidden" : "visible");
document.getElementById("submit").addEventListener("click",
function(event){
event.preventDefault();
}
);
}
#overlay {
visibility: hidden; position: absolute; left: 0px; top: 0px;
width: 100%; height: 100%; text-align:center; z-index: 1000;
}
#overlay div {
width: 300px; margin: 100px auto; background-color: #fff;
border: 1px solid #000; padding: 15px; text-align: center;
}
<!DOCTYPE html>
<html>
<body>
<a href='#' onclick='overlay()'>Click here to show the overlay</a>
<div id="overlay">
<div>
<p>Please complete the form below.</p>
<form action="test.asp" method="post" id="contact-form">
<input type="text" name="field1"><br>
<input type="text" name="field2"><br>
<input type="submit" id="submit" value="Go">
</form><br>
Click here to [<a href='#' onclick='overlay()'>close</a>]<br>
</div>
</div>
</body>
</html>
之后,使用 Jquery 发出 AJAX 请求,以便在同一窗口中加载下一页:
$.ajax({
url: '/path/to/file',
type: 'default GET (Other values: POST)',
dataType: 'default: Intelligent Guess (Other values: xml, json, script, html)',
data: {param1: 'value1'},
}).done(function() {
console.log("success");
}).fail(function() {
console.log("error");
}).always(function() {
console.log("complete");
});
相关文章:
- 点击AngularJS模态窗口捕捉背景事件
- 在angularJS中使用模态窗口时,在控制器之间共享对象数组
- 如何使用jquery关闭模态窗口,通过模拟模态's关闭按钮
- Angularjs - 观察模态窗口从另一个控制器关闭
- 模态窗口yii2中的Ajax验证数据
- Ajax 模态窗口可以访问父窗口 PHP 数据吗?
- 在选择(rails_admin)时更改时在模态窗口中添加新字段
- 在模态窗口上创建 cookie
- 如何在用户离开网页时显示模态窗口
- Magento时事通讯弹出窗口(模态窗口)在每个页面上触发.它应该只在主页上弹出
- 如何在 jquery 中浮动模态窗口
- 创建一个模态窗口以使用 AngularJS 加载数据
- Angular JS将msg广播到多个视图,包括模态窗口
- 模态窗口在电子上消失
- 如何使用 javascript 在模态窗口内重定向
- ExtJS 4.2.1 用于加载指示和模态窗口的不同 CSS 掩码
- 机器人可以单击在 javascript 中制作模态窗口的链接吗?
- 如何在 angularjs 模态窗口中运行 jquery
- Javascript 模态窗口例程每次单击都会执行更多时间
- 模态窗口(弹出窗口)警报在使用 angularJs 的错误字段上显示