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判断变量是否空值的代码
Oct 26 Javascript
javascript跨浏览器的属性判断方法
Mar 16 Javascript
javascript实现的元素拖动函数宿主为浏览器
Jul 21 Javascript
jQuery 1.9.1源码分析系列(十三)之位置大小操作
Dec 02 Javascript
JS中使用apply方法通过不同数量的参数调用函数的方法
May 31 Javascript
JS 在数组指定位置插入/删除数据的方法
Jan 12 Javascript
angular.js指令中的controller、compile与link函数的不同之处
May 10 Javascript
Angularjs 事件指令详细整理
Jul 27 Javascript
ES6中Set和Map数据结构,Map与其它数据结构互相转换操作实例详解
Feb 28 Javascript
Vue 使用Props属性实现父子组件的动态传值详解
Nov 13 Javascript
Vue分页效果与购物车功能
Dec 13 Javascript
three.js 实现露珠滴落动画效果的示例代码
Mar 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判断搜索引擎蜘蛛并自动记忆到文件的代码
2012/02/04 PHP
php中error与exception的区别及应用
2014/07/28 PHP
php实现过滤表单提交中html标签的方法
2014/10/17 PHP
Yii框架常见缓存应用实例小结
2019/09/09 PHP
laravel 5.3 单用户登录简单实现方法
2019/10/14 PHP
在TP5数据库中四个字段实现无限分类的示例
2019/10/18 PHP
jquery tab插件制作实现代码
2010/06/22 Javascript
JS 有趣的eval优化输入验证实例代码
2013/09/22 Javascript
jquery使用append(content)方法注意事项分享
2014/01/06 Javascript
JQuery Tips相关(1)----关于$.Ready()
2014/08/14 Javascript
js 判断图片是否加载完以及实现图片的预下载
2014/08/14 Javascript
jQuery中closest()函数用法实例
2015/01/07 Javascript
Node.js中的process.nextTick使用实例
2015/06/25 Javascript
js实现页面跳转的五种方法推荐
2016/03/10 Javascript
浅谈js中同名函数和同名变量的执行问题
2017/02/12 Javascript
小程序实现发表评论功能
2018/07/06 Javascript
JS实现纵向轮播图(初级版)
2020/01/18 Javascript
Node使用Nodemailer发送邮件的方法实现
2020/02/24 Javascript
jQuery实现移动端图片上传预览组件的方法分析
2020/05/01 jQuery
用python代码做configure文件
2014/07/20 Python
Python中文件I/O高效操作处理的技巧分享
2017/02/04 Python
opencv python图像梯度实例详解
2020/02/04 Python
Pycharm和Idea支持的vim插件的方法
2020/02/21 Python
Python 通过正则表达式快速获取电影的下载地址
2020/08/17 Python
抽象方法、抽象类怎样声明
2014/10/25 面试题
某公司部分笔试题
2013/11/05 面试题
试用期员工考核制度
2014/01/22 职场文书
仓管岗位职责范本
2014/02/08 职场文书
2014年社区庆元旦活动方案
2014/03/08 职场文书
书香校园建设方案
2014/05/02 职场文书
2014年六一儿童节演讲稿
2014/05/23 职场文书
新闻报道策划方案
2014/06/11 职场文书
个人总结与自我评价2015
2015/03/11 职场文书
朋友聚会开场白
2015/06/01 职场文书
2015国庆节感想
2015/08/04 职场文书
2016年重阳节慰问信
2015/12/01 职场文书