js实现文本框支持加减运算的方法


Posted in Javascript onAugust 19, 2015

本文实例讲述了js实现文本框支持加减运算的方法。分享给大家供大家参考。具体如下:

这是一个网页表单效果,让表单内的文本框支持加减运算,不过你要按正确的运算式输入,要不然它没有那么智能哦,比如输入1+5,文本框旁边会显示计算结果,这要归功于JavaScript的功能。

运行效果截图如下:

js实现文本框支持加减运算的方法

在线演示地址如下:

具体代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>支持加减运算的文本框</title>
<meta http-equiv="content-type" content="text/html;charset=gb2312">
<style type="text/css">
body{color:#000;font-size:14px;font-family:Verdana,Arial,Helvetica,sans-serif,"宋体";}
input{border-style:solid;border-color:#868275;background-color:#f9f9f9;border-width:1px;color:#505050;vertical-align:middle;}
</style>
<script language=javascript>
function FloatAdd(arg1,arg2){
 var r1,r2,m;
 try{r1=arg1.toString().split(".")[1].length}catch(e){r1=0}
 try{r2=arg2.toString().split(".")[1].length}catch(e){r2=0}
 m=Math.pow(10,Math.max(r1,r2))
 return (arg1*m+arg2*m)/m
}
function FloatSubtr(arg1,arg2){
 return FloatAdd(arg1,-arg2);
}
function IsMoney(Money){
 if(/^[\d|+|.|-]+$/.test(Money)) return true;
 return false;
}
function result(){
 str=document.getElementById("buy").value;
 if(!(IsMoney(str))){
  document.getElementById("amount").innerHTML ="无效金额";
  return false;
 }
 var len=str.length,money=0,Num=0;
 var NumStr="",ctrlflag="x",cflag=0;
 for(var i=0;i<len; i++){
  c= str.charAt(i);
  if((c=="+")||(c=="-")){
   if(i+1<len){
    if ((str.charAt(i+1)=="+")||(str.charAt(i+1)=="-")) continue;
   }
   if((NumStr!="")&&(isNaN(NumStr))){
    if(isNaN(NumStr)){
     document.getElementById("amount").innerHTML ="输入无效金额";
     return false;
    }
   }
   if(NumStr!=""){
   //alert("i:"+i+"NumStr:"+NumStr);
    if ((ctrlflag=="+")||(ctrlflag=="x")){
     Num=parseFloat(NumStr);
     //alert(ctrlflag+"money:"+money+"Num:"+Num);
     money=FloatAdd(money,Num);
     NumStr="";
     Num=0;
     ctrlflag=c;
    }
    else{
     //alert(money+"里面减了"+NumStr);
     Num=parseFloat(NumStr);
     money=FloatSubtr(money,Num);
     NumStr="";
     Num=0;
     ctrlflag=c;
    }
   }
   else{
    ctrlflag=c;
   }
  continue;
  }
  else{
   NumStr=NumStr+""+c;
  }
 }
 if((NumStr!="")&&(isNaN(NumStr))){
  if (isNaN(NumStr)){
   document.getElementById("amount").innerHTML ="无效金额"+NumStr;
   return false;
  }
 }
 if((ctrlflag=="-")&&(NumStr!="")){
  Num=parseFloat(NumStr); 
  money=FloatSubtr(money,Num);
 }
 if(((ctrlflag=="+")||(ctrlflag=="x"))&&((NumStr!=""))){
  Num=parseFloat(NumStr);
  money=FloatAdd(money,Num);
 }
 document.getElementById("amount").innerHTML =money;
}
</script>
</head>
<body>
请输入加减计算式:<input id="buy" name="buy" maxlength="30" type="text" onkeyup="javascript:result();">
<span id="amount"></span>
</body>
</html>

希望本文所述对大家的javascript程序设计有所帮助。

Javascript 相关文章推荐
扩展jQuery 键盘事件的几个基本方法
Oct 30 Javascript
浅析ajax请求json数据并用js解析(示例分析)
Jul 13 Javascript
JS实现随机乱撞彩色圆球特效的方法
May 05 Javascript
全面理解闭包机制
Jul 11 Javascript
jQuery多文件异步上传带进度条实例代码
Aug 16 Javascript
BootStrap实现邮件列表的分页和模态框添加邮件的功能
Oct 13 Javascript
详解angular用$sce服务来过滤HTML标签
Apr 11 Javascript
js Date()日期函数浏览器兼容问题解决方法
Sep 12 Javascript
详解vue-cli下ESlint 配置说明
Sep 03 Javascript
微信小程序云开发之模拟后台增删改查
May 16 Javascript
vue和小程序项目中使用iconfont的方法
May 19 Javascript
Vue项目配置跨域访问和代理proxy设置方式
Sep 08 Javascript
JS实现方向键切换输入框焦点的方法
Aug 19 #Javascript
纯CSS3代码实现滑动开关效果
Aug 19 #Javascript
js实现input框文字动态变换显示效果
Aug 19 #Javascript
jQuery左侧大图右侧小图焦点图幻灯切换代码分享
Aug 19 #Javascript
js实现Form栏显示全格式时间时钟效果代码
Aug 19 #Javascript
easyui Droppable组件实现放置特效
Aug 19 #Javascript
js实现简单的联动菜单效果
Aug 19 #Javascript
You might like
深入php数据采集的详解
2013/06/02 PHP
PHP树的深度编历生成迷宫及A*自动寻路算法实例分析
2015/03/10 PHP
PHP微信支付实例解析
2016/07/22 PHP
PHP执行普通shell命令流程解析
2020/08/24 PHP
Git命令之分支详解
2021/03/02 PHP
js TextArea的选中区域处理
2010/12/28 Javascript
精通Javascript系列之数据类型 字符串
2011/06/08 Javascript
jquery的总体架构分析及实现示例详解
2014/11/08 Javascript
javascript实现倒计时并弹窗提示特效
2015/06/05 Javascript
Jquery对新插入的节点 绑定Click事件失效的解决方法
2016/06/02 Javascript
又一款js时钟!transform实现时钟效果
2016/08/15 Javascript
javascript简单实现跟随滚动条漂浮的返回顶部按钮效果
2016/08/19 Javascript
jquery 判断div show的状态实例
2016/12/03 Javascript
$.browser.msie 为空或不是对象问题的多种解决方法
2017/03/19 Javascript
详解基于webpack搭建react运行环境
2017/06/01 Javascript
详谈js对url进行编码和解码(三种方式的区别)
2017/08/16 Javascript
使用vuex缓存数据并优化自己的vuex-cache
2018/05/30 Javascript
详解关于html,css,js三者的加载顺序问题
2019/04/10 Javascript
简述:我为什么选择Python而不是Matlab和R语言
2017/11/14 Python
python3.5+tesseract+adb实现西瓜视频或头脑王者辅助答题
2018/01/17 Python
python利用高阶函数实现剪枝函数
2018/03/20 Python
完美解决在oj中Python的循环输入问题
2018/06/25 Python
python画柱状图--不同颜色并显示数值的方法
2018/12/13 Python
python读取各种文件数据方法解析
2018/12/29 Python
python实现Virginia无密钥解密
2019/03/20 Python
Python如何使用argparse模块处理命令行参数
2019/12/11 Python
Python 程序员必须掌握的日志记录
2020/08/17 Python
诗狄娜化妆品官方网站:Stila Cosmetics
2016/12/21 全球购物
Pretty Little Thing美国:时尚女性服饰
2018/08/27 全球购物
彪马日本官网:PUMA日本
2019/01/31 全球购物
大学校园活动策划书
2014/02/04 职场文书
小学中秋节活动方案
2014/02/06 职场文书
班组长安全工作职责
2014/07/15 职场文书
民事授权委托书范文
2014/08/02 职场文书
党员公开承诺书2016
2016/03/24 职场文书
Python读取文件夹下的所有文件实例代码
2021/04/02 Python