You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

两个textbox输入时同步值,如何让第二个textbox忽略自动添加的逗号

解决方案

你已经封装好了可提取纯数字的getNumber工具函数,直接复用该函数即可实现需求,核心调整包含两点:

  1. 修改textbox1同步到textbox2的赋值逻辑,把textbox1的值传入getNumber过滤千分位逗号等非数字字符后再赋值
  2. 补充双向同步逻辑:textbox2输入时自动把纯数字值传给textbox1,触发千分位格式化

完整代码

HTML部分(无需修改)

<input type="text" value="" id="textbox1"/>
<input type="text" value="" id="textbox2"/>

JavaScript部分

// 千分位格式化函数
function updateTextView(_obj){
    var num = getNumber(_obj.val());
    if(num==0){
        _obj.val('');
    }else{
        _obj.val(num.toLocaleString());
    }
}
// 提取纯数字工具函数
function getNumber(_str){
    var arr = _str.split('');
    var out = new Array();
    for(var cnt=0;cnt<arr.length;cnt++){
        if(isNaN(arr[cnt])==false){
            out.push(arr[cnt]);
        }
    }
    return Number(out.join(''));
}
$(document).ready(function(){
    // textbox1输入自动加千分位
    $('#textbox1').on('keyup',function(){
        updateTextView($(this));
    });
    // textbox1同步到textbox2:自动过滤逗号
    $("#textbox1").bind('input', function () {
        var pureNum = getNumber($(this).val());
        $("#textbox2").val(pureNum ? pureNum : '');
    });
    // 双向同步:textbox2输入时同步更新textbox1
    $("#textbox2").bind('input', function () {
        var pureNum = getNumber($(this).val());
        $("#textbox1").val(pureNum ? pureNum.toLocaleString() : '');
    });
});

实现效果

  • textbox1输入1000自动格式化为1,000时,textbox2同步显示1000
  • textbox2输入任意数字,textbox1会自动同步带千分位逗号的格式化结果
  • 所有非数字字符都会被自动过滤,不会出现在两个输入框中

内容的提问来源于stack exchange,提问作者Ulquiorra Schiffer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.22 03:15:03