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获取多个tagname的节点数组
Sep 22 Javascript
JS制作手机端自适应缩放显示
Jun 11 Javascript
Bootstrap3学习笔记(二)之排版
May 20 Javascript
详解微信小程序 页面跳转 传递参数
Dec 08 Javascript
详解PHP中pathinfo()函数导致的安全问题
Jan 05 Javascript
jquery实现文字单行横移或翻转(上下、左右跳转)
Jan 08 Javascript
基于jQuery实现弹幕APP
Feb 10 Javascript
JavaScript中transform实现数字翻页效果
Mar 08 Javascript
vue移动端下拉刷新和上拉加载的实现代码
Sep 08 Javascript
Vue项目总结之webpack常规打包优化方案
Jun 06 Javascript
vue的注意规范之v-if 与 v-for 一起使用教程
Aug 04 Javascript
详解React路由传参方法汇总记录
Nov 29 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 fsockopen函数被禁用的解决办法
2013/08/07 PHP
php自动载入类用法实例分析
2016/06/24 PHP
Jquery AutoComplete自动完成 的使用方法实例
2010/03/19 Javascript
需要做特殊处理的DOM元素属性的访问
2010/11/05 Javascript
JavaScript 学习历程和心得分享
2010/12/12 Javascript
jquery ajax提交整个表单元素的快捷办法
2013/03/27 Javascript
JavaScript作用域链使用介绍
2013/08/29 Javascript
js 与 php 通过json数据进行通讯示例
2014/03/26 Javascript
使用AmplifyJS组件配合JavaScript进行编程的指南
2015/07/28 Javascript
JavaScript实现广告弹窗效果
2016/08/09 Javascript
使用vue的v-for生成table并给table加上序号的实例代码
2017/10/27 Javascript
cordova入门基础教程及使用中遇到的一些问题总结
2017/11/14 Javascript
Node.js实现mysql连接池使用事务自动回收连接的方法示例
2018/02/03 Javascript
Vue + better-scroll 实现移动端字母索引导航功能
2018/05/07 Javascript
Vue.js的复用组件开发流程完整记录
2018/11/29 Javascript
layer弹出层倒计时关闭的实现方法
2019/09/27 Javascript
Python 绘图和可视化详细介绍
2017/02/11 Python
Python continue继续循环用法总结
2018/06/10 Python
Python使用pyshp库读取shapefile信息的方法
2018/12/29 Python
解决pycharm remote deployment 配置的问题
2019/06/27 Python
Numpy数组array和矩阵matrix转换方法
2019/08/05 Python
Django视图扩展类知识点详解
2019/10/25 Python
python如何求100以内的素数
2020/05/27 Python
HTML5的结构和语义(5):交互
2008/10/17 HTML / CSS
HTML5 Notification(桌面提醒)功能使用实例
2014/03/17 HTML / CSS
详解如何通过H5(浏览器/WebView/其他)唤起本地app
2017/12/11 HTML / CSS
Clarisonic美国官网:科莱丽声波洁面仪
2017/10/12 全球购物
伯利陶器:Burleigh Pottery
2018/01/03 全球购物
定制别致的瑜伽垫:Sugarmat
2019/06/21 全球购物
售后主管岗位职责
2013/12/08 职场文书
老师对学生的评语
2014/04/18 职场文书
领导班子四风对照检查材料思想汇报
2014/09/26 职场文书
坎儿井导游词
2015/02/09 职场文书
采购员工作总结范文
2015/08/12 职场文书
Django如何创作一个简单的最小程序
2021/05/12 Python
Python OpenCV之常用滤波器使用详解
2022/04/07 Python