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 相关文章推荐
node.js中的fs.readSync方法使用说明
Dec 17 Javascript
jQuery取消ajax请求的方法
Jun 09 Javascript
JavaScript类型系统之基本数据类型与包装类型
Jan 06 Javascript
jQuery Select下拉框操作小结(推荐)
Jul 22 Javascript
JavaScript定义全局对象的方法示例
Jan 12 Javascript
十大 Node.js 的 Web 框架(快速提升工作效率)
Jun 30 Javascript
vue2实现可复用的轮播图carousel组件详解
Nov 27 Javascript
vue项目中跳转到外部链接的实例讲解
Sep 20 Javascript
详解Vue中数组和对象更改后视图不刷新的问题
Sep 21 Javascript
Vue中的vue-resource示例详解
Nov 02 Javascript
Vue实现商品详情页的评价列表功能
Sep 04 Javascript
在vue+element ui框架里实现lodash的debounce防抖
Nov 13 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
第4章 数据处理-php字符串的处理-郑阿奇(续)
2011/07/04 PHP
PHP中使用sleep函数实现定时任务实例分享
2014/08/21 PHP
php基于表单密码验证与HTTP验证用法实例
2015/01/06 PHP
详解在YII2框架中使用UEditor编辑器发布文章
2018/11/02 PHP
javascript中的继承实例代码
2011/04/27 Javascript
jquery ajax提交整个表单元素的快捷办法
2013/03/27 Javascript
动态加载iframe时get请求传递中文参数乱码解决方法
2014/05/07 Javascript
JS实现可缩放、拖动、关闭和最小化的浮动窗口完整实例
2015/03/04 Javascript
javascript中checkbox使用方法实例演示
2015/11/19 Javascript
Validform+layer实现漂亮的表单验证特效
2016/01/17 Javascript
纯js实现悬浮按钮组件
2016/12/17 Javascript
JavaScript获取当前时间向前推三个月的方法示例
2017/02/04 Javascript
bootstrap timepicker在angular中取值并转化为时间戳
2017/06/13 Javascript
微信小程序项目实践之九宫格实现及item跳转功能
2018/07/19 Javascript
使用mpvue搭建一个初始小程序及项目配置方法
2018/12/03 Javascript
vue路由导航守卫和请求拦截以及基于node的token认证的方法
2019/04/07 Javascript
[00:30]塑造者的传承礼包-戴泽“暗影之焰”套装展示视频
2014/04/04 DOTA
Python开发实例分享bt种子爬虫程序和种子解析
2014/05/21 Python
python opencv判断图像是否为空的实例
2019/01/26 Python
python 爬虫 实现增量去重和定时爬取实例
2020/02/28 Python
Python内置异常类型全面汇总
2020/05/28 Python
python批量修改文件名的示例
2020/09/27 Python
CSS3教程(9):设置RGB颜色
2009/04/02 HTML / CSS
CSS3制作Dropdown下拉菜单的方法
2015/07/18 HTML / CSS
前端隐藏出边界内容的实现方法
2016/04/14 HTML / CSS
HTML5中使用postMessage实现两个网页间传递数据
2016/06/22 HTML / CSS
REISS美国官网:伦敦最受欢迎的时尚品牌
2019/08/16 全球购物
C语言中break与continue的区别
2012/07/12 面试题
欢度春节标语
2014/07/01 职场文书
乡镇创先争优活动总结
2014/08/28 职场文书
公司聚餐通知
2015/04/22 职场文书
售后服务质量承诺书
2015/04/29 职场文书
同学会感言
2015/07/30 职场文书
高一数学教学反思
2016/02/18 职场文书
Redis模仿手机验证码发送的实现示例
2021/11/02 Redis
Node.js实现爬取网站图片的示例代码
2022/04/04 NodeJs