使用html和css组件以及bootstrap框架写一个火车票售票系统的详细前端
时间: 2024-03-14 11:48:17 浏览: 62
好的,下面是一个比较详细的火车票售票系统前端示例代码,包括登录、订票、更新、历史记录等功能。代码中使用了 HTML、CSS 和 Bootstrap 框架,以及一些 JavaScript 代码来实现交互功能。请注意,这只是一个示例代码,您需要根据实际需求进行修改和调整。
```html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>火车票售票系统</title>
<link rel="stylesheet" href="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/4.5.3/css/bootstrap.min.css">
<style>
.form-group {
margin-bottom: 1.5rem;
}
.form-error {
color: red;
font-size: 0.8rem;
margin-top: 0.2rem;
}
.ticket-card {
margin-bottom: 1rem;
}
</style>
</head>
<body>
<nav class="navbar navbar-expand-lg navbar-light bg-light">
<a class="navbar-brand" href="#">火车票售票系统</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav">
<li class="nav-item active">
<a class="nav-link" href="#home">首页</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#book">订票</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#update">更新</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#history">历史记录</a>
</li>
</ul>
</div>
</nav>
<div class="container mt-5" id="home">
<h1>欢迎使用火车票售票系统</h1>
<p>请登录以继续</p>
<form id="login-form">
<div class="form-group">
<label for="username">用户名</label>
<input type="text" class="form-control" id="username" name="username" placeholder="请输入用户名">
<div class="form-error" id="username-error"></div>
</div>
<div class="form-group">
<label for="password">密码</label>
<input type="password" class="form-control" id="password" name="password" placeholder="请输入密码">
<div class="form-error" id="password-error"></div>
</div>
<button type="submit" class="btn btn-primary">登录</button>
</form>
</div>
<div class="container mt-5" id="book" style="display:none;">
<h1>订票</h1>
<form id="book-form">
<div class="form-group">
<label for="train">车次</label>
<select class="form-control" id="train" name="train">
<option value="G1234">G1234</option>
<option value="G5678">G5678</option>
<option value="D1234">D1234</option>
<option value="D5678">D5678</option>
</select>
<div class="form-error" id="train-error"></div>
</div>
<div class="form-group">
<label for="date">日期</label>
<input type="date" class="form-control" id="date" name="date">
<div class="form-error" id="date-error"></div>
</div>
<div class="form-group">
<label for="name">姓名</label>
<input type="text" class="form-control" id="name" name="name" placeholder="请输入姓名">
<div class="form-error" id="name-error"></div>
</div>
<div class="form-group">
<label for="idcard">身份证号</label>
<input type="text" class="form-control" id="idcard" name="idcard" placeholder="请输入身份证号">
<div class="form-error" id="idcard-error"></div>
</div>
<button type="submit" class="btn btn-primary">提交</button>
</form>
<div class="mt-5" id="ticket-list"></div>
</div>
<div class="container mt-5" id="update" style="display:none;">
<h1>更新</h1>
<form id="update-form">
<div class="form-group">
<label for="ticket">订单号</label>
<input type="text" class="form-control" id="ticket" name="ticket" placeholder="请输入订单号">
<div class="form-error" id="ticket-error"></div>
</div>
<div class="form-group">
<label for="new-date">新日期</label>
<input type="date" class="form-control" id="new-date" name="new-date">
<div class="form-error" id="new-date-error"></div>
</div>
<button type="submit" class="btn btn-primary">提交</button>
</form>
<div class="mt-5" id="update-result"></div>
</div>
<div class="container mt-5" id="history" style="display:none;">
<h1>历史记录</h1>
<div class="ticket-card">
<h5>订单号:123456</h5>
<p>车次:G1234</p>
<p>日期:2022-01-01</p>
<p>姓名:张三</p>
<p>身份证号:123456789012345678</p>
</div>
<div class="ticket-card">
<h5>订单号:789012</h5>
<p>车次:D5678</p>
<p>日期:2022-01-02</p>
<p>姓名:李四</p>
<p>身份证号:234567890123456789</p>
</div>
</div>
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script src="https://cdn.bootcdn.net/ajax/libs/popper.js/1.16.0/umd/popper.min.js"></script>
<script src="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/4.5.3/js/bootstrap.min.js"></script>
<script>
// 登录表单验证
$('#login-form').on('submit', function(e) {
e.preventDefault();
var username = $('#username').val().trim();
var password = $('#password').val().trim();
var valid = true;
if (username === '') {
$('#username-error').text('请输入用户名');
valid = false;
} else {
$('#username-error').text('');
}
if (password === '') {
$('#password-error').text('请输入密码');
valid = false;
} else {
$('#password-error').text('');
}
if (valid) {
// TODO: 发送登录请求
$('#home').hide();
$('#book').show();
}
});
// 订票表单验证
$('#book-form').on('submit', function(e) {
e.preventDefault();
var train = $('#train').val().trim();
var date = $('#date').val().trim();
var name = $('#name').val().trim();
var idcard = $('#idcard').val().trim();
var valid = true;
if (train === '') {
$('#train-error').text('请选择车次');
valid = false;
} else {
$('#train-error').text('');
}
if (date === '') {
$('#date-error').text('请选择日期');
valid = false;
} else {
$('#date-error').text('');
}
if (name === '') {
$('#name-error').text('请输入姓名');
valid = false;
} else {
$('#name-error').text('');
}
if (idcard === '') {
$('#idcard-error').text('请输入身份证号');
valid = false;
} else if (!/^\d{18}$/.test(idcard)) {
$('#idcard-error').text('身份证号格式不正确');
valid = false;
} else {
$('#idcard-error').text('');
}
if (valid) {
// TODO: 发送订票请求
var ticketNumber = Math.floor(Math.random() * 1000000);
var ticketHtml = '<div class="ticket-card"><h5>订单号:' + ticketNumber + '</h5>' +
'<p>车次:' + train + '</p>' +
'<p>日期:' + date + '</p>' +
'<p>姓名:' + name + '</p>' +
'<p>身份证号:' + idcard + '</p></div>';
$('#ticket-list').append(ticketHtml);
$('#book-form')[0].reset();
}
});
// 更新表单验证
$('#update-form').on('submit', function(e) {
e.preventDefault();
var ticket = $('#ticket').val().trim();
var newDate = $('#new-date').val().trim();
var valid = true;
if (ticket === '') {
$('#ticket-error').text('请输入订单号');
valid = false;
} else {
$('#ticket-error').text('');
}
if (newDate === '') {
$('#new-date-error').text('请选择新日期');
valid = false;
} else {
$('#new-date-error').text('');
}
if (valid) {
// TODO: 发送更新请求
$('#update-result').text('订单 ' + ticket + ' 已更新到 ' + newDate);
$('#update-form')[0].reset();
}
});
// 导航栏切换
$('.navbar-nav a').on('click', function(e) {
e.preventDefault();
var target = $(this).attr('href');
$('.container').hide();
$(target).show();
});
</script>
</body>
</html>
```
上面的代码中,我们使用了 Bootstrap 框架来构建导航栏、表单和卡片等组件,并使用了一些自定义样式来调整页面布局。在表单中,我们使用了 JavaScript 代码来验证用户输入,并在提交表单时发送请求。在历史记录页面,我们使用了卡片组件来显示用户的订单信息。
需要注意的是,这里的 JavaScript 代码仅仅是一个简单的示例,实际项目中可能需要更多的代码和逻辑来完成各种功能。同时,由于这里的代码没有与后端进行交互,因此实际使用时需要根据实际情况调整代码。
阅读全文