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 相关文章推荐
基于jQuery的仿flash的广告轮播
Nov 05 Javascript
IE6/7/8中Option元素未设value时Select将获取空字符串
Apr 07 Javascript
Extjs3.0 checkboxGroup 动态添加item实现思路
Aug 14 Javascript
JS.getTextContent(element,preformatted)使用介绍
Sep 21 Javascript
Jquery获取元素的父容器对象示例代码
Feb 10 Javascript
js获取当前页面的url网址信息
Jun 12 Javascript
基于JQuery及AJAX实现名人名言随机生成器
Feb 10 Javascript
深入理解Vuex 模块化(module)
Sep 26 Javascript
Vue shopCart 组件开发详解
Jan 26 Javascript
JS调用安卓手机摄像头扫描二维码
Oct 16 Javascript
基于vue、react实现倒计时效果
Aug 26 Javascript
React Hook用法示例详解(6个常见hook)
Apr 28 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
一个改进的UBB类
2006/10/09 PHP
php生成WAP页面
2006/10/09 PHP
《PHP边学边教》(04.编写简易的通讯录――视频教程1)
2006/12/13 PHP
利用PHP实现智能文件类型检测的实现代码
2011/08/02 PHP
探讨:如何使用PHP实现计算两个日期间隔的年、月、周、日数
2013/06/13 PHP
php/js获取客户端mac地址的实现代码
2013/07/08 PHP
CI框架安全类Security.php源码分析
2014/11/04 PHP
PHP的mysqli_set_charset()函数讲解
2019/01/23 PHP
PHP单例模式实例分析【防继承,防克隆操作】
2019/05/22 PHP
Prototype 学习 工具函数学习($w,$F方法)
2009/07/12 Javascript
TreeView 用法(有代码)(asp.net)
2011/07/15 Javascript
javascript实现别踩白块儿小游戏程序
2015/11/22 Javascript
前端jquery部分很精彩
2016/05/03 Javascript
JavaScript中的prototype原型学习指南
2016/05/09 Javascript
微信小程序开发探究
2016/12/27 Javascript
input输入密码变黑点密文的实现方法
2017/01/09 Javascript
Javascript 两种刷新方法以及区别和适用范围
2017/01/17 Javascript
jQuery简单绑定单个事件的方法示例
2017/06/10 jQuery
JS实现websocket长轮询实时消息提示的效果
2017/10/10 Javascript
使用Webpack提升Vue.js应用程序的4种方法(翻译)
2019/10/09 Javascript
用JS实现一个简单的打砖块游戏
2019/12/11 Javascript
微信小程序连续签到7天积分获得功能的示例代码
2020/08/20 Javascript
Python中__init__.py文件的作用详解
2016/09/18 Python
Python解析Excle文件中的数据方法
2018/10/23 Python
Python中Subprocess的不同函数解析
2019/12/10 Python
解决Pycharm中恢复被exclude的项目问题(pycharm source root)
2020/02/14 Python
python ETL工具 pyetl
2020/06/07 Python
Python map及filter函数使用方法解析
2020/08/06 Python
UNIX文件系统常用命令
2012/05/25 面试题
Ajax实现页面无刷新留言效果
2021/03/24 Javascript
文秘专业大学生求职信
2013/11/10 职场文书
2014党的群众路线教育实践活动学习心得体会
2014/10/31 职场文书
营业用房租赁协议书
2014/11/26 职场文书
MySQL索引篇之千万级数据实战测试
2021/04/05 MySQL
python常见的占位符总结及用法
2021/07/02 Python
Redis数据同步之redis shake的实现方法
2022/04/21 Redis