js实现ATM机存取款功能


Posted in Javascript onOctober 27, 2020

js是一个功能十分强大的脚本语言,通过js能实现很多有意思的demo!而要实现那些功能炫酷、特效美观的东西DOM操作是必不可少且尤为重要的!这个ATM机存取款的案例,就用到js中一些简单的DOM操作来实现其功能。

ATM机案例功能需求:

1.用户最多只能有三次输入卡号和密码的机会,如果超过三次,则提示卡号已被锁定
2.用户取款的金额不能大于卡上的账户余额
3.存取功能完成后,要更新相应的余额信息 

登录界面代码:

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>ATM</title>
 <script src="ATM.js"></script>
 <style>
 div{
 width: 300px;
 height: 200px;
 margin: 0 auto;
 border:1px solid black;
 border-radius: 5px;
 text-align: center;
 }
 p {
 font-size: 20px;
 }
 button {
 border: 0px;
 padding: 5px;
 background-color: green;
 color: white;
 }
 </style>
</head>
<body>
 <div>
 <p>ATM机</p>
 <p><label>卡号:</label><input type="text" id="account"></p>
 <p><label>密码:</label><input type="password" id="password"></p>
 <p><button onclick="login()">登录</button></p>
 </div>
</body>
</html>

主页界面代码:

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>ATM</title>
 <script src="ATM.js"></script>
 <style>
 div{
 width: 300px;
 height: 200px;
 margin: 0 auto;
 border:1px solid black;
 border-radius: 5px;
 text-align: center;
 }
 p {
 font-size: 20px;
 }
 button {
 border: 0px;
 padding: 5px;
 background-color: green;
 color: white;
 }
 </style>
</head>
<body>
 <div>
 <p>ATM机</p>
 <p><label>余额:</label><input type="text" id="balance" value="2000.00" disabled></p>
 <p><label>存款:</label><input type="text" id="deposit"> <button onclick="deposit()">存款</button></p>
 <p><label>取款:</label><input type="text" id="withdraw"> <button onclick="withdraw()">取款</button></p>
 
 </div>
</body>
</html>

js代码:

var i = 2; //定义密码输错的次数

//判断输入的卡号是不是数字类型
//返回true,证明不是数字;返回false,证明是数字

 function checkNumber(account){
 var pattern=/^[0-9]*[1-9][0-9]*$/;
 return pattern.test(account);
 // return isNaN(account);
 }

//判断输入的卡号和密码是否为空
 function checkNull(account,password){
 if(account.length>0 && password.length>0){
 return true;
 }
 return false;
 }

//登录事件
 function login(){
 var account=document.getElementById("account").value;
 var password=document.getElementById("password").value;

 if(!checkNull(account,password)){
 alert("卡号和密码不能为空!");
 return; //终止登录方法,下面的代码不会执行
 }
 if(!checkNumber(account)){
 alert("卡号必须为数字!");
 return;
 }
 if(i>0 && account=="123456789" && password=="123"){
 window.location.href="index.html" rel="external nofollow" ;
 }else{
 if(i == 0){
 alert("当前卡号被锁定!");
 return;
 }
 alert("你还剩下"+i+"次输入卡号和密码的机会");
 i--;
 return;
 }
 }

//存款
 function deposit(){
 var balance = parseFloat(document.getElementById("balance").value); //获取余额,并将其转换为数字
 var deposit = document.getElementById("deposit").value;

 if(!deposit.length>0){
 alert("请输入您要存款的金额");
 return;
 }
 if(checkNumber(deposit)){
 alert("请输入数字");
 return;
 }

 balance+=parseFloat(deposit);
 document.getElementById("balance").value=balance; //修改存款完成以后显示的余额

 }

 //取款
 function withdraw(){
 var balance = parseFloat(document.getElementById("balance").value); //获取余额,并将其转换为数字
 var withdraw = document.getElementById("withdraw").value;

 if(!withdraw.length>0){
 alert("请输入您要取款的金额");
 return;
 }
 if(checkNumber(withdraw)){
 alert("请输入数字");
 return;
 }

 //判断取款是否大于余额
 if(parseFloat(withdraw)>balance){
 alert("余额不足!");
 }

 balance-=parseFloat(withdraw);
 document.getElementById("balance").value=balance;
 }

运行效果:

js实现ATM机存取款功能
js实现ATM机存取款功能
js实现ATM机存取款功能
js实现ATM机存取款功能

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js TextArea的选中区域处理
Dec 28 Javascript
js里怎么取select标签里的值并修改
Dec 10 Javascript
分享12个实用的jQuery代码片段
Mar 09 Javascript
Bootstrap3 模态框使用实例
Feb 22 Javascript
Angular2 Service实现简单音乐播放器服务
Feb 24 Javascript
vue2.0 axios跨域并渲染的问题解决方法
Mar 08 Javascript
Vue2.0 实现移动端图片上传功能
May 30 Javascript
JS尾递归的实现方法及代码优化技巧
Jan 19 Javascript
利用Electron简单撸一个Markdown编辑器的方法
Jun 10 Javascript
利用Angular7开发一个Radio组件的全过程
Jul 11 Javascript
layui多图上传实现删除功能的例子
Sep 23 Javascript
详解vue3.0 diff算法的使用(超详细)
Jul 01 Javascript
详解基于electron制作一个node压缩图片的桌面应用
Jan 29 #Javascript
JS实现鼠标拖拽盒子移动及右键点击盒子消失效果示例
Jan 29 #Javascript
JS实现盒子跟着鼠标移动及键盘方向键控制盒子移动效果示例
Jan 29 #Javascript
JS实现的类似微信聊天效果示例
Jan 29 #Javascript
vue实现form表单与table表格的数据关联功能示例
Jan 29 #Javascript
vue input实现点击按钮文字增删功能示例
Jan 29 #Javascript
详解基于webpack&amp;gettext的前端多语言方案
Jan 29 #Javascript
You might like
调频问题解答
2021/03/01 无线电
收听短波不可能有声音清晰的品质吗
2021/03/01 无线电
随时给自己贴的图片加文字的php水印
2007/03/16 PHP
php格式化工具Beautify PHP小小BUG
2008/04/24 PHP
php adodb操作mysql数据库
2009/03/19 PHP
PHP+Mysql+jQuery实现动态展示信息
2011/10/08 PHP
PHP机器学习库php-ml的简单测试和使用方法
2017/07/14 PHP
jquery里的正则表达式说明
2011/08/03 Javascript
JavaScript极简入门教程(二):对象和函数
2014/10/25 Javascript
jQuery焦点图插件SaySlide
2015/12/21 Javascript
Bootstrap安装环境配置教程分享
2016/05/27 Javascript
vue项目中v-model父子组件通信的实现详解
2017/12/10 Javascript
vue实现文章内容过长点击阅读全文功能的实例
2017/12/28 Javascript
如何去除vue项目中的#及其ie9兼容性
2018/01/11 Javascript
详解vue指令与$nextTick 操作DOM的不同之处
2018/08/02 Javascript
vuex + axios 做登录验证 并且保存登录状态的实例
2018/09/16 Javascript
编写更好的JavaScript条件式和匹配条件的技巧(小结)
2019/06/27 Javascript
JavaScript中如何调用Java方法
2020/09/16 Javascript
[52:00]2018DOTA2亚洲邀请赛 4.1 小组赛 A组加赛 LGD vs Optic
2018/04/02 DOTA
使用Python的Twisted框架构建非阻塞下载程序的实例教程
2016/05/25 Python
python http接口自动化脚本详解
2018/01/02 Python
Python实现PS滤镜特效Marble Filter玻璃条纹扭曲效果示例
2018/01/29 Python
TensorFlow搭建神经网络最佳实践
2018/03/09 Python
Python wxpython模块响应鼠标拖动事件操作示例
2018/08/23 Python
Python线程同步的实现代码
2018/10/03 Python
对Python实现累加函数的方法详解
2019/01/23 Python
python随机在一张图像上截取任意大小图片的方法
2019/01/24 Python
django用户登录验证的完整示例代码
2019/07/21 Python
python可视化实现KNN算法
2019/10/16 Python
H5最强接口之canvas实现动态图形功能
2019/05/31 HTML / CSS
List、Map、Set三个接口,存取元素时,各有什么特点?
2015/09/27 面试题
公益活动策划方案
2014/01/09 职场文书
试用期员工考核制度
2014/01/22 职场文书
小学红领巾广播稿(3篇)
2014/09/13 职场文书
环卫个人总结
2015/03/03 职场文书
Android基于Fresco实现圆角和圆形图片
2022/04/01 Java/Android