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 相关文章推荐
JS原型对象通俗&quot;唱法&quot;
Dec 27 Javascript
用表格输出1-1000之间的数字实现代码(附特效)
Apr 21 Javascript
javascript模拟实现C# String.format函数功能代码
Nov 25 Javascript
原生js实现autocomplete插件
Apr 14 Javascript
Bootstrap页面缩小变形的快速解决办法
Feb 03 Javascript
JavaScript实现的鼠标响应颜色渐变效果完整实例
Feb 18 Javascript
ES6学习教程之Map的常用方法总结
Aug 03 Javascript
vue路由跳转时判断用户是否登录功能的实现
Oct 26 Javascript
Angular4编程之表单响应功能示例
Dec 13 Javascript
简单介绍react redux的中间件的使用
Apr 06 Javascript
在Vue项目中使用jsencrypt.js对数据进行加密传输的方法
Apr 17 Javascript
详解vue3.0 diff算法的使用(超详细)
Jul 01 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 array_multisort() 函数的深入解析
2013/06/20 PHP
基于ThinkPHP5.0实现图片上传插件
2017/09/25 PHP
详解php中curl返回false的解决办法
2019/03/18 PHP
Laravel使用模型实现like模糊查询的例子
2019/10/24 PHP
jQuery Validation插件remote验证方式的Bug解决
2010/07/01 Javascript
jQuery页面滚动浮动层智能定位实例代码
2011/08/23 Javascript
js怎么终止程序return不行换jfslk
2013/05/30 Javascript
仿百度的关键词匹配搜索示例
2013/09/25 Javascript
javascript实现点击提交按钮后显示loading的方法
2015/07/03 Javascript
JS实现无限级网页折叠菜单(类似树形菜单)效果代码
2015/09/17 Javascript
JS动态创建元素的两种方法
2016/04/20 Javascript
JS跨域交互(jQuery+php)之jsonp使用心得
2016/07/01 Javascript
原生js仿jquery animate动画效果
2016/07/13 Javascript
jQuery设置和获取select、checkbox、radio的选中值方法
2017/01/01 Javascript
微信小程序时间轴实现方法示例
2019/01/14 Javascript
python 图片验证码代码分享
2012/07/04 Python
Django1.3添加app提示模块不存在的解决方法
2014/08/26 Python
Python创建文件和追加文件内容实例
2014/10/21 Python
常见python正则用法的简单实例
2016/06/21 Python
详解Tensorflow数据读取有三种方式(next_batch)
2018/02/01 Python
使用Python读取二进制文件的实例讲解
2018/07/09 Python
python内置数据类型之列表操作
2018/11/12 Python
python如何以表格形式打印输出的方法示例
2019/06/21 Python
详解python 利用echarts画地图(热力图)(世界地图,省市地图,区县地图)
2019/08/06 Python
python学生信息管理系统实现代码
2019/12/17 Python
Python中SQLite如何使用
2020/05/27 Python
Mountain Hardwear官网:攀岩服装和户外装备
2019/09/26 全球购物
介绍一下Mysql的存储引擎
2015/02/12 面试题
护理专业毕业生自荐信范文
2014/01/05 职场文书
暑期实践思想汇报
2014/01/06 职场文书
大学活动策划书范文
2014/01/10 职场文书
自动化毕业生专业自荐书范文
2014/02/04 职场文书
大学教师个人总结
2015/02/10 职场文书
2015年圣诞节活动总结
2015/03/24 职场文书
Redis基于Bitmap实现用户签到功能
2021/06/20 Redis
Nginx配置使用详解
2022/07/07 Servers