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 相关文章推荐
网上应用的一个不错common.js脚本
Aug 08 Javascript
JavaScript的事件绑定(方便不支持js的时候)
Oct 01 Javascript
jquery设置按钮停顿3秒不可用
Mar 07 Javascript
JavaScript 身份证号有效验证详解及实例代码
Oct 20 Javascript
React.Js添加与删除onScroll事件的方法详解
Nov 03 Javascript
js推箱子小游戏步骤代码解析
Jan 10 Javascript
关于js对textarea换行符的处理方法浅析
Aug 03 Javascript
解决vue 打包发布去#和页面空白的问题
Sep 04 Javascript
在create-react-app中使用sass的方法示例
Oct 01 Javascript
vue路由前进后退动画效果的实现代码
Dec 10 Javascript
react中使用css的7中方式(最全总结)
Feb 11 Javascript
vue中上传视频或图片或图片和文字一起到后端的解决方法
Dec 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
《DOTA3》开发工作已经开始 《DOTA3》将代替《DOTA2》
2021/03/06 DOTA
is_uploaded_file函数引发的不能上传文件问题
2013/10/29 PHP
Zend Framework教程之配置文件application.ini解析
2016/03/10 PHP
php中通过eval实现字符串格式的计算公式
2017/03/18 PHP
php使用curl实现简单模拟提交表单功能
2017/05/15 PHP
PHP getNamespaces()函数讲解
2019/02/03 PHP
不用ajax实现点击文字即可编辑的方法
2007/12/16 Javascript
有效的捕获JavaScript焦点的方法小结
2009/10/08 Javascript
javascript面向对象的方式实现的弹出层效果代码
2010/01/28 Javascript
Javascript学习笔记之函数篇(四):arguments 对象
2014/11/23 Javascript
JS折半插入排序算法实例
2015/12/02 Javascript
理解AngularJs指令
2015/12/10 Javascript
js+css简单实现网页换肤效果
2015/12/29 Javascript
jQuery日历插件datepicker用法详解
2016/03/03 Javascript
JS实用技巧小结(屏蔽错误、div滚动条设置、背景图片位置等)
2016/06/16 Javascript
BootStrap3中模态对话框的使用
2017/01/06 Javascript
ZeroClipboard.js使用一个flash复制多个文本框
2017/06/19 Javascript
小程序scroll-view安卓机隐藏横向滚动条的实现详解
2019/05/16 Javascript
Vue SSR 即时编译技术的实现
2020/05/06 Javascript
[03:55]2016国际邀请赛中国区预选赛首日TOP10精彩集锦
2016/06/27 DOTA
[09:34]2018DOTA2国际邀请赛寻真——永不放弃的iG
2018/08/14 DOTA
[22:59]VGJ.S vs VG 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Python 字符串中的字符倒转
2008/09/06 Python
Python 判断 有向图 是否有环的实例讲解
2018/02/01 Python
Python使用Pandas对csv文件进行数据处理的方法
2019/08/01 Python
把vgg-face.mat权重迁移到pytorch模型示例
2019/12/27 Python
python由已知数组快速生成新数组的方法
2020/04/08 Python
不到20行实现Python代码即可制作精美证件照
2020/04/24 Python
The North Face北面英国官网:美国著名户外品牌
2017/12/13 全球购物
护理专业推荐信
2013/11/07 职场文书
现场活动策划方案
2014/08/22 职场文书
我的职业生涯规划:打造自己的运动帝国
2014/09/18 职场文书
工厂清洁工岗位职责
2015/02/14 职场文书
关于艺术节的开幕致辞
2016/03/04 职场文书
2019升学宴主持词范本5篇
2019/10/09 职场文书
Django操作cookie的实现
2021/05/26 Python