背景:需要根据一个input中输入的金额转换为标准的 每三位加一个逗号,保留两位小数的 金额标准(准换为标准金额的js 是addCommas,感兴趣的可以搜一下,网上一大堆)。

另外一个input  (id用 i2 代替)是这个input(id用 i2 代替)的0.05;

根据 i1 的onchang触发 一个js函数 gbje(),在gbje()中给i2赋值,并将i1转换为标准金额格式。但是i2的onchange事件在赋值时并没有触发。

解决办法:用keyup()绑定addCommas函数,用document.getElementById('i2')获取指定元素。

示例(部分代码):

<script>
function gbje(obj){
var je1 = obj.value;
while(je1.indexOf(",")!=-1){
je1 = je1.replace(/,/,"");
}

var je2 = je1*0.05;
$("#i2").val(je2).keyup(addCommas(document.getElementById('i2')));
addCommas(obj);
}
</script>
<tr>
<td align="right" class="tz_pd tz_title">金额1:</td>
<td align="left" bgcolor="#FFFFFF" class="tz_pd">
<input type="text" name="i1" id="i1" οnchange="gbje(this)" size="30" />
</td>
<td align="right" class="tz_pd tz_title">金额2:</td>
<td align="left" bgcolor="#FFFFFF" class="tz_pd">
<input type="text" name="i2" id="i2" readonly="readonly"  size="30"/>
</td>
</tr>

准换数字标准的js

//将数字转换为标准格式 每三位加个“,”
function addCommas(obj)
{
var str=obj.value;
while(str.indexOf(",")!=-1){
str=str.replace(/,/,"");
}
var newStr = "";
var count = 0;

if(str.indexOf(".")==-1){
for(var i=str.length-1;i>=0;i--){
if(count % 3 == 0 && count != 0){
newStr = str.charAt(i) + "," + newStr;
}else{
newStr = str.charAt(i) + newStr;
}
count++;
}
str = newStr + ".00"; //自动补小数点后两位
obj.value=str;
}
else
{
for(var i = str.indexOf(".")-1;i>=0;i--){
if(count % 3 == 0 && count != 0){
newStr = str.charAt(i) + "," + newStr; //碰到3的倍数则加上“,”号
}else{
newStr = str.charAt(i) + newStr; //逐个字符相接起来
}
count++;
}
str = str + "00";//没进行有几位小数的判断,所以给str补上两位小数,以防位数不够,
var point = str.substr(str.indexOf("."),3);
str = newStr + point
console.log(str)
obj.value=str;
}
//return x1 + x2;
}

转载于:https://www.cnblogs.com/BigWrite/p/8066436.html

js给input赋值后,触发相应函数相关推荐

  1. JQ/JS设置val值后触发v-model的改变

    今天在写layer的弹出层的时候,想把父页面的值传递到弹出层并显示,在success回调中已经取到了元素,并将其value设置了 $(layero.find('.ruleValue')[0]).val ...

  2. js给input赋值无效的问题

    新手出道,纠结了很久. $("#identifyType").attr("value", identifyType); 在网上看到采用上述方法赋值,结果仍然无效 ...

  3. php如何动态为input赋值,input动态赋值后怎么触发change事件

    input经常用的事件有oninput与onchange oninput:事件在用户输入时触发. onchange:事件在内容改变(两次内容有可能还是相等的)且失去焦点时触发 但是当我们给元素赋值时并 ...

  4. 如何在延迟后触发一个块,比如-performSelector:withObject:afterDelay:?

    有没有办法在延迟后调用带有原始参数的块,比如使用performSelector:withObject:afterDelay:但是使用像int / double / float这样的参数? #1楼 Bl ...

  5. 通过js给input框的value赋值触发input事件

    主要通过在赋值后直接.trigger('input') 可以看这个:https://blog.csdn.net/qq_35087256/article/details/79552624 <inp ...

  6. JS给input框赋值

    JS给input框赋值 在做一些东西时需要用到了js给input输入框复制,在网上了解了一些后总结如下: 注意:由于网站显示问题,代码中有些标点符号显示出现了异常,需要注意,里面的一切代码符号均是英文 ...

  7. jQuery为input赋值(调用函数)

    当我们为input赋值时,有时候的赋值为函数形式.以下示例为为input赋值为guid. 这里我们需要注意: ①使用原生js和使用jQuery赋值的区别,原生js:document.getElemen ...

  8. JS改变input的value值不触发onchange事件解决方案 (转)

    JS改变input的value值不触发onchange事件解决方案 (转) 参考文章: (1)JS改变input的value值不触发onchange事件解决方案 (转) (2)https://www. ...

  9. 解决select 下拉框选择器 input输入框 、时间日期选择器el-date-picker 赋值后,出现无法修改选中更改问题

    ElementUI时间选择器,传入时间赋值后之后无法改变 // ElementUI的表格组件<el-date-pickersize="mini"style="wid ...

最新文章

  1. 只用一张训练图像进行图像的恢复
  2. vi常用命令与设置(不断修改中)
  3. 【qduoj - 夏季学期创新题】矩形剖分(递归,dp)
  4. Windows搭建SonarQube_Mysql
  5. HTML+CSS+JS实现 ❤️透明等离子球ui特效❤️
  6. Python—语法基础(8) 分支、循环结构
  7. hadoop hdfs 集群模板机配置
  8. x[:,n]或者x[n,:]的用法
  9. python部落课程资源_python部落刷题宝学到的内置函数
  10. 5y计算机应用2010综合测评答案,计算机二级习题答案
  11. win10计算机的数字小键盘,Win10开机默认开启数字小键盘的方法
  12. Python---贪心的狗熊
  13. 未转变者服务器bug,未转变者BUG问题解决 | 手游网游页游攻略大全
  14. Rust+官方APP使用教程
  15. 如何突破安全狗远程桌面防护
  16. 8583协议报文例子。
  17. linux的历史演绎
  18. 金海佳学C++primer 练习9.41
  19. 常用坐标系及SuperMap投影转换
  20. 初中计算机考试的题型,教师资格证考试中学信息技术科目题型及分值分布,快看!...

热门文章

  1. 推荐几本与领导力相关的书,这些书可以帮助你培养领导力
  2. 制造型企业的数字化转型离不开 MES 系统
  3. INPHO常见问题处理之新建新椭球定义
  4. PyCharm三种解释器的区别(virtual Enviroment, system interpreter, conda Enviroment)
  5. 未来已来!金融壹账通高管京交会论道银行数字化转型
  6. 【VMware虚拟机】介绍及安装 | 远程桌面连接
  7. 计算机开机桌面一直转圈,Win10开机一直转圈圈怎么办?一直转圈进不去系统的解决方法...
  8. python如何实现下载文件_python实现下载文件的三种方法
  9. SpringCloud之Sleuth全链路日志跟踪
  10. LCD液晶屏和点阵屏之间的PK