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 相关文章推荐
JavaScript的面向对象(一)
Nov 09 Javascript
List all the Databases on a SQL Server
Jun 21 Javascript
直接生成打开窗口代码,不必下载
May 14 Javascript
javascript contains和compareDocumentPosition 方法来确定是否HTML节点间的关系
Feb 04 Javascript
js判断FCKeditor内容是否为空的两种形式
May 14 Javascript
js获取URL的参数的方法(getQueryString)示例
Sep 29 Javascript
vue proxyTable 接口跨域请求调试的示例
Sep 12 Javascript
JS实现遍历不规则多维数组的方法
Mar 21 Javascript
Vue.js实现的计算器功能完整示例
Jul 11 Javascript
2019年度web前端面试题总结(主要为Vue面试题)
Jan 12 Javascript
Vue2.4+新增属性.sync、$attrs、$listeners的具体使用
Mar 08 Javascript
vuejs element table 表格添加行,修改,单独删除行,批量删除行操作
Jul 18 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
解析Ubuntu下crontab命令的用法
2013/06/24 PHP
php版微信公众号自定义分享内容实现方法
2016/09/22 PHP
PHP读MYSQL中文乱码的快速解决方法
2016/10/01 PHP
thinkPHP5.0框架应用请求生命周期分析
2017/03/25 PHP
微信企业号开发之微信考勤Cookies的使用
2015/09/11 Javascript
jquery自适应布局的简单实例
2016/05/28 Javascript
BootStrap3中模态对话框的使用
2017/01/06 Javascript
vue组件jsx语法的具体使用
2018/05/21 Javascript
JS实现将二维数组转为json格式字符串操作示例
2018/07/12 Javascript
iview在vue-cli3如何按需加载的方法
2018/10/31 Javascript
vscode vue 文件模板的配置方法
2019/07/23 Javascript
微信小程序个人中心的列表控件实现代码
2020/04/26 Javascript
从零学python系列之数据处理编程实例(一)
2014/05/22 Python
基于并发服务器几种实现方法(总结)
2017/12/29 Python
利用Python代码实现数据可视化的5种方法详解
2018/03/25 Python
pyqt5对用qt designer设计的窗体实现弹出子窗口的示例
2019/06/19 Python
python中下标和切片的使用方法解析
2019/08/27 Python
Django 自定义分页器的实现代码
2019/11/24 Python
python 字段拆分详解
2019/12/17 Python
Python打包工具PyInstaller的安装与pycharm配置支持PyInstaller详细方法
2020/02/27 Python
keras训练曲线,混淆矩阵,CNN层输出可视化实例
2020/06/15 Python
Keras实现DenseNet结构操作
2020/07/06 Python
Python如何在bool函数中取值
2020/09/21 Python
巴西宠物店在线:Geração Pet
2017/05/31 全球购物
阿联酋电子产品购物网站:Menakart
2017/09/15 全球购物
施华洛世奇意大利官网:SWAROVSKI意大利
2018/07/23 全球购物
.NET方向面试题
2014/11/20 面试题
当文件系统受到破坏时,如何检查和修复系统?
2012/03/09 面试题
职务聘任书范文
2014/03/29 职场文书
文明礼仪演讲稿
2014/05/12 职场文书
大学生创业计划书怎么写
2014/09/15 职场文书
上班迟到检讨书范文
2015/05/06 职场文书
2015年节能减排工作总结
2015/05/14 职场文书
男人帮观后感
2015/06/18 职场文书
详解Js模块化的作用原理和方案
2021/04/29 Javascript
浅析MongoDB之安全认证
2021/06/26 MongoDB