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 相关文章推荐
javascript客户端遍历控件与获取父容器对象示例代码
Jan 06 Javascript
js获取页面description的方法
May 21 Javascript
深入理解JavaScript中的对象
Jun 04 Javascript
TypeScript 中接口详解
Jun 19 Javascript
JQuery ztree带筛选、异步加载实例讲解
Feb 25 Javascript
js倒计时简单实现代码
Aug 11 Javascript
jQuery Validate插件自定义验证规则的方法
Dec 27 Javascript
xmlplus组件设计系列之分隔框(DividedBox)(8)
May 02 Javascript
五步轻松实现JavaScript HTML时钟效果
Mar 25 Javascript
微信小程序实现类似微信点击语音播放效果
Mar 30 Javascript
jquery轻量级数字动画插件countUp.js使用详解
Oct 17 jQuery
JavaScript Dom实现轮播图原理和实例
Feb 19 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实现自动登入google play下载app report的方法
2014/09/23 PHP
PHP入门教程之面向对象的特性分析(继承,多态,接口,抽象类,抽象方法等)
2016/09/11 PHP
thinkPHP5框架实现基于ajax的分页功能示例
2018/06/12 PHP
jquery复选框CHECKBOX全选、反选
2008/08/30 Javascript
JavaScript经典效果集锦
2010/07/06 Javascript
javascript基础第一章 JavaScript与用户端
2010/07/22 Javascript
单击按钮显示隐藏子菜单经典案例
2013/01/04 Javascript
javascript如何动态加载表格与动态添加表格行
2013/11/27 Javascript
js 动态为textbox添加下拉框数据源的方法
2014/04/24 Javascript
2014 HTML5/CSS3热门动画特效TOP10
2014/12/07 Javascript
JavaScript学习小结(7)之JS RegExp
2015/11/29 Javascript
javascript滚轮控制模拟滚动条
2016/10/19 Javascript
用jQuery实现优酷首页轮播图
2017/01/09 Javascript
JavaScript数据结构中栈的应用之表达式求值问题详解
2017/04/11 Javascript
jquery实现图片上传前本地预览
2017/04/28 jQuery
从零开始最小实现react服务器渲染详解
2018/01/26 Javascript
JS 自执行函数原理及用法
2019/08/05 Javascript
layui问题之自动滚动二级iframe页面到指定位置的方法
2019/09/18 Javascript
vue+elementui 对话框取消 表单验证重置示例
2019/10/29 Javascript
写给新手同学的vuex快速上手指北小结
2020/04/14 Javascript
vue开发简单上传图片功能
2020/06/30 Javascript
vue点击标签切换选中及互相排斥操作
2020/07/17 Javascript
python实现自动重启本程序的方法
2015/07/09 Python
python中的tcp示例详解
2018/12/09 Python
django框架实现一次性上传多个文件功能示例【批量上传】
2019/06/19 Python
Python中栈、队列与优先级队列的实现方法
2019/06/30 Python
python Django 创建应用过程图示详解
2019/07/29 Python
python drf各类组件的用法和作用
2021/01/12 Python
VICHY薇姿俄罗斯官方网上商店:法国护肤品牌,火山温泉水
2019/11/22 全球购物
Agoda中文官网:安可达(低价预订全球酒店)
2021/01/18 全球购物
互联网创业计划书的书写步骤
2014/01/28 职场文书
高一学生期末评语
2014/04/25 职场文书
撤诉书怎么写
2015/05/19 职场文书
2019假期福利管理制度!
2019/07/15 职场文书
Golang标准库syscall详解(什么是系统调用)
2021/05/25 Golang
CSS实现单选折叠菜单功能
2021/11/01 HTML / CSS