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实多级联动下拉菜单类,简单实现省市区联动菜单!
May 03 Javascript
Javascript递归打印Document层次关系实例分析
May 15 Javascript
js实现按钮颜色渐变动画效果
Aug 20 Javascript
BootStrap Progressbar 实现大文件上传的进度条的实例代码
Jun 27 Javascript
Javascript使用function创建类的两种方法(推荐)
Nov 19 Javascript
VUE多层路由嵌套实现代码
May 15 Javascript
JS实现的简单分页功能示例
Aug 23 Javascript
Vue axios设置访问基础路径方法
Sep 19 Javascript
JavaScript 点击触发复制功能实例详解
Nov 02 Javascript
vue下使用nginx刷新页面404的问题解决
Aug 02 Javascript
微信小程序分享小程序码的生成(带参数)以及参数的获取
Mar 25 Javascript
Ajax获取node服务器数据的完整步骤
Sep 20 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
php switch语句多个值匹配同一代码块应用示例
2014/07/29 PHP
ThinkPHP的常用配置选项汇总
2016/03/24 PHP
用PHP将Unicode 转化为UTF-8的实现方法(推荐)
2017/02/08 PHP
JS 控制CSS样式表
2009/08/20 Javascript
jquery 仿QQ校友的DIV模拟窗口效果源码
2010/03/24 Javascript
Javascript 面向对象 重载
2010/05/13 Javascript
小议JavaScript中Generator和Iterator的使用
2015/07/29 Javascript
基于JS设计12306登录页面
2016/12/28 Javascript
jQuery通过改变input的type属性实现密码显示隐藏切换功能
2017/02/08 Javascript
微信小程序商城项目之淘宝分类入口(2)
2017/04/17 Javascript
angular6.0开发教程之如何安装angular6.0框架
2018/06/29 Javascript
JS数组求和的常用方法总结【5种方法】
2019/01/14 Javascript
Vue将props值实时传递 并可修改的操作
2020/08/09 Javascript
Python多线程下载文件的方法
2015/07/10 Python
举例简单讲解Python中的数据存储模块shelve的用法
2016/03/03 Python
python实现的正则表达式功能入门教程【经典】
2017/06/05 Python
python实现求特征选择的信息增益
2018/12/18 Python
对Python3 goto 语句的使用方法详解
2019/02/16 Python
Django CSRF跨站请求伪造防护过程解析
2019/07/31 Python
python3中datetime库,time库以及pandas中的时间函数区别与详解
2020/04/16 Python
浅谈tensorflow中dataset.shuffle和dataset.batch dataset.repeat注意点
2020/06/08 Python
Python使用socket模块实现简单tcp通信
2020/08/18 Python
Django中使用Celery的方法步骤
2020/12/07 Python
全球领先的各类汽车配件零售商:Advance Auto Parts
2016/08/26 全球购物
Reebok官方旗舰店:美国知名健身品牌锐步
2019/01/07 全球购物
您附近的水疗和健康场所:Spafinder(美国)
2019/07/05 全球购物
英语专业职业生涯规划范文
2014/03/05 职场文书
电子商务专业毕业生求职信
2014/06/12 职场文书
2014年中秋节活动总结
2014/08/29 职场文书
介绍长城的导游词
2015/01/30 职场文书
2016年3月份红领巾广播稿
2015/12/21 职场文书
nginx里的rewrite跳转的实现
2021/03/31 Servers
pytorch--之halfTensor的使用详解
2021/05/24 Python
MySQL5.7并行复制原理及实现
2021/06/03 MySQL
如何用Python搭建gRPC服务
2021/06/30 Python
如何解决goland,idea全局搜索快捷键失效问题
2022/04/03 Golang