zoukankan      html  css  js  c++  java
  • js给input赋值后,触发相应函数

    背景:需要根据一个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" onchange="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;
    }

  • 相关阅读:
    HttpMediaTypeNotSupportedException: Content type 'text/plain;charset=UTF-8' not supported
    【MySQL用法】Mysql数据库连接池 [ druid ] 的所有配置介绍
    冒泡排序
    com.alibaba.druid.pool.GetConnectionTimeoutException: wait millis 60000, active 20, maxActive 20
    判断两个线段是否相交02
    判断两个线段是否相交
    unity小地图制作___按比例尺图标布局
    Unity---Inspector面板自定义
    unity物理检测的几种方式
    unity音量设置(同时设置到多个物体上)——引伸语言设置
  • 原文地址:https://www.cnblogs.com/BigWrite/p/8066436.html
Copyright © 2011-2022 走看看