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获取地址栏参数插件(模仿C#)
Oct 26 Javascript
IE网页js语法错误2行字符1、FF中正常的解决方法
Sep 09 Javascript
原生javascript实现分享到朋友圈功能 支持ios和android
May 11 Javascript
完美实现八种js焦点轮播图(上篇)
Jul 18 Javascript
浅谈jquery中next与siblings的区别
Oct 27 Javascript
JavaScript+Html5实现按钮复制文字到剪切板功能(手机网页兼容)
Mar 30 Javascript
JavaScript切换搜索引擎的导航网页搜索框实例代码
Jun 11 Javascript
简单实现jQuery上传图片显示预览功能
Jun 29 jQuery
vue.js中created方法作用
Mar 30 Javascript
JavaScript数据结构与算法之基本排序算法定义与效率比较【冒泡、选择、插入排序】
Feb 21 Javascript
Vue 动态组件components和v-once指令的实现
Aug 30 Javascript
javascript如何实现create方法
Nov 04 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
php4的彩蛋
2006/10/09 PHP
我的论坛源代码(七)
2006/10/09 PHP
Windows下部署Apache+PHP+MySQL运行环境实战
2012/08/31 PHP
html静态页面调用php文件的方法
2014/11/13 PHP
PHP实现CSV文件的导入和导出类
2015/03/24 PHP
PHP7创建COOKIE和销毁COOKIE的实例方法
2020/02/03 PHP
将两个div左右并列显示并实现点击标题切换内容
2013/10/22 Javascript
关于JS数组追加数组采用push.apply的问题
2014/06/09 Javascript
JavaScript代码应该放在HTML代码哪个位置比较好?
2014/10/16 Javascript
如何在JS中实现相互转换XML和JSON
2016/07/19 Javascript
基于jPlayer三分屏的制作方法
2016/12/21 Javascript
完美解决jQuery的hover事件在IE中不停闪动的问题
2017/02/10 Javascript
从零学习node.js之express入门(六)
2017/02/25 Javascript
移动端效果之Swiper详解
2017/10/09 Javascript
vue滚动轴插件better-scroll使用详解
2017/10/17 Javascript
jQuery表单选择器用法详解
2019/08/22 jQuery
vue中实现弹出层动画效果的示例代码
2020/09/25 Javascript
VUE异步更新DOM - 用$nextTick解决DOM视图的问题
2020/11/06 Javascript
python实现将pvr格式转换成pvr.ccz的方法
2015/04/28 Python
关于Python数据结构中字典的心得
2017/12/04 Python
Python异常处理知识点总结
2019/02/18 Python
快速排序的四种python实现(推荐)
2019/04/03 Python
Python中字符串与编码示例代码
2019/05/20 Python
Python动态声明变量赋值代码实例
2019/12/30 Python
Python类如何定义私有变量
2020/02/03 Python
Jupyter notebook 远程配置及SSL加密教程
2020/04/14 Python
Python Tornado核心及相关原理详解
2020/06/24 Python
Python txt文件如何转换成字典
2020/11/03 Python
AmazeUI 导航条的实现示例
2020/08/14 HTML / CSS
美国伊甸园兄弟种子公司:Eden Brothers
2018/07/01 全球购物
高中数学教学反思
2014/01/30 职场文书
恶搞卫生巾广告词
2014/03/18 职场文书
县级文明单位申报材料
2014/05/23 职场文书
音乐之声音乐广播稿
2014/09/10 职场文书
喝酒驾驶检讨书
2014/10/01 职场文书
快消品行业营销模式与盈利模式分享
2019/09/27 职场文书