这是一个多步骤表单的变种,通过模态框(也称为弹出框或对话框)呈现。模态框是一种覆盖在当前页面上的浮动窗口,用于显示重要信息或提示用户进行操作。在这个例子中,多步骤表单被嵌入到模态框中,用户点击页面上的按钮后弹出模态框显示表单。
在页面上点击按钮弹出多步骤框,可以使用模态框(Modal)来实现。这种方式可以通过Bootstrap的模态框组件结合JavaScript来完成。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Multi-step Form Modal Example</title>
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="container mt-5">
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#multiStepModal">
Open Multi-step Form
</button>
</div>
<!-- Multi-step Modal -->
<div class="modal fade" id="multiStepModal" tabindex="-1" aria-labelledby="multiStepModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="multiStepModalLabel">Multi-step Form</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<div id="step1">
<h5>Step 1</h5>
<p>Enter your name:</p>
<input type="text" class="form-control mb-3" placeholder="Name">
<button class="btn btn-primary" onclick="showStep(2)">Next</button>
</div>
<div id="step2" style="display: none;">
<h5>Step 2</h5>
<p>Enter your email:</p>
<input type="email" class="form-control mb-3" placeholder="Email">
<button class="btn btn-secondary" onclick="showStep(1)">Previous</button>
<button class="btn btn-primary" onclick="showStep(3)">Next</button>
</div>
<div id="step3" style="display: none;">
<h5>Step 3</h5>
<p>Review and Submit:</p>
<button class="btn btn-secondary" onclick="showStep(2)">Previous</button>
<button class="btn btn-success">Submit</button>
</div>
</div>
</div>
</div>
</div>
<script>
function showStep(step) {
document.getElementById('step1').style.display = 'none';
document.getElementById('step2').style.display = 'none';
document.getElementById('step3').style.display = 'none';
document.getElementById('step' + step).style.display = 'block';
}
</script>
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.5.2/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>
代码解析
-
触发按钮:
- 使用一个按钮
<button>
,点击时会打开模态框。按钮的data-toggle="modal"
和data-target="#multiStepModal"
属性指定了要打开的模态框。
- 使用一个按钮
-
模态框结构:
- 使用 Bootstrap 的模态框组件来创建一个多步骤的弹出框。模态框的
id
为multiStepModal
,与按钮的data-target
属性对应。 - 模态框内部分为标题区域(
modal-header
)、内容区域(modal-body
)和底部区域(modal-footer
,此处没有使用)。
- 使用 Bootstrap 的模态框组件来创建一个多步骤的弹出框。模态框的
-
步骤内容:
- 每个步骤的内容放在
<div>
元素中,初始状态下除了第一个步骤,其他步骤都被隐藏 (display: none
)。 showStep(step)
函数用于控制步骤的显示和隐藏。每次调用该函数时,都会隐藏所有步骤,然后显示指定的步骤。
- 每个步骤的内容放在
-
脚本和样式:
- 包含 jQuery 和 Bootstrap 的 JavaScript 文件,用于启用模态框功能和其他交互效果。
通过这种方式,在用户点击按钮时弹出一个模态框,其中包含多步骤的表单或其他内容。您还可以进一步自定义样式和功能,以适应具体的需求。