使用html和css组件以及bootstrap框架写一个火车票售票系统的详细前端

时间: 2024-03-14 21:48:17 浏览: 22
好的,下面是一个比较详细的火车票售票系统前端示例代码,包括登录、订票、更新、历史记录等功能。代码中使用了 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 代码仅仅是一个简单的示例,实际项目中可能需要更多的代码和逻辑来完成各种功能。同时,由于这里的代码没有与后端进行交互,因此实际使用时需要根据实际情况调整代码。

相关推荐

最新推荐

recommend-type

使用Bootstrap框架制作查询页面的界面实例代码

主要介绍了使用Bootstrap框架制作查询页面界面的效果,本文以职业技能考证分数查询界面为例,通过实例代码给大家详细介绍,需要的朋友可以参考下
recommend-type

springboot整合jquery和bootstrap框架过程图解

主要介绍了springboot整合jquery和bootstrap框架过程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
recommend-type

JS组件Bootstrap实现弹出框和提示框效果代码

在增加用户体验方面,弹出框和提示框起着重要的作用,如果你的系统有一个友好的弹出提示框,自然能给用户很好的页面体验。前面几章介绍了bootstrap的几个常用组件,这章来看看bootstrap里面弹出框和提示框的处理。总...
recommend-type

Bootstrap框架下下拉框select搜索功能

主要为大家详细介绍了Bootstrap框架下下拉框select搜索功能,感兴趣的小伙伴们可以参考一下
recommend-type

一个炫酷的Bootstrap导航菜单

主要为大家详细介绍了一个炫酷的Bootstrap导航菜单的制作方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
recommend-type

RTL8188FU-Linux-v5.7.4.2-36687.20200602.tar(20765).gz

REALTEK 8188FTV 8188eus 8188etv linux驱动程序稳定版本, 支持AP,STA 以及AP+STA 共存模式。 稳定支持linux4.0以上内核。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

:YOLOv1目标检测算法:实时目标检测的先驱,开启计算机视觉新篇章

![:YOLOv1目标检测算法:实时目标检测的先驱,开启计算机视觉新篇章](https://img-blog.csdnimg.cn/img_convert/69b98e1a619b1bb3c59cf98f4e397cd2.png) # 1. 目标检测算法概述 目标检测算法是一种计算机视觉技术,用于识别和定位图像或视频中的对象。它在各种应用中至关重要,例如自动驾驶、视频监控和医疗诊断。 目标检测算法通常分为两类:两阶段算法和单阶段算法。两阶段算法,如 R-CNN 和 Fast R-CNN,首先生成候选区域,然后对每个区域进行分类和边界框回归。单阶段算法,如 YOLO 和 SSD,一次性执行检
recommend-type

info-center source defatult

这是一个 Cisco IOS 命令,用于配置 Info Center 默认源。Info Center 是 Cisco 设备的日志记录和报告工具,可以用于收集和查看设备的事件、警报和错误信息。该命令用于配置 Info Center 默认源,即设备的默认日志记录和报告服务器。在命令行界面中输入该命令后,可以使用其他命令来配置默认源的 IP 地址、端口号和协议等参数。
recommend-type

c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf

校园超市商品信息管理系统课程设计旨在帮助学生深入理解程序设计的基础知识,同时锻炼他们的实际操作能力。通过设计和实现一个校园超市商品信息管理系统,学生掌握了如何利用计算机科学与技术知识解决实际问题的能力。在课程设计过程中,学生需要对超市商品和销售员的关系进行有效管理,使系统功能更全面、实用,从而提高用户体验和便利性。 学生在课程设计过程中展现了积极的学习态度和纪律,没有缺勤情况,演示过程流畅且作品具有很强的使用价值。设计报告完整详细,展现了对问题的深入思考和解决能力。在答辩环节中,学生能够自信地回答问题,展示出扎实的专业知识和逻辑思维能力。教师对学生的表现予以肯定,认为学生在课程设计中表现出色,值得称赞。 整个课程设计过程包括平时成绩、报告成绩和演示与答辩成绩三个部分,其中平时表现占比20%,报告成绩占比40%,演示与答辩成绩占比40%。通过这三个部分的综合评定,最终为学生总成绩提供参考。总评分以百分制计算,全面评估学生在课程设计中的各项表现,最终为学生提供综合评价和反馈意见。 通过校园超市商品信息管理系统课程设计,学生不仅提升了对程序设计基础知识的理解与应用能力,同时也增强了团队协作和沟通能力。这一过程旨在培养学生综合运用技术解决问题的能力,为其未来的专业发展打下坚实基础。学生在进行校园超市商品信息管理系统课程设计过程中,不仅获得了理论知识的提升,同时也锻炼了实践能力和创新思维,为其未来的职业发展奠定了坚实基础。 校园超市商品信息管理系统课程设计的目的在于促进学生对程序设计基础知识的深入理解与掌握,同时培养学生解决实际问题的能力。通过对系统功能和用户需求的全面考量,学生设计了一个实用、高效的校园超市商品信息管理系统,为用户提供了更便捷、更高效的管理和使用体验。 综上所述,校园超市商品信息管理系统课程设计是一项旨在提升学生综合能力和实践技能的重要教学活动。通过此次设计,学生不仅深化了对程序设计基础知识的理解,还培养了解决实际问题的能力和团队合作精神。这一过程将为学生未来的专业发展提供坚实基础,使其在实际工作中能够胜任更多挑战。