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

如何使用jQuery将输入框中的逗号替换为点号?

解决输入字段逗号替换为点号的最佳方法

先帮你梳理下当前代码里的几个问题,再给出更靠谱的实现方案:

  • 输入框这类表单元素的内容操作,得用val()方法,而不是text()——text()是给普通文本节点用的,对输入框无效
  • 你的replace语法写错了:replace(','.'')里参数分隔少了逗号,而且默认replace只替换第一个匹配项,要替换所有逗号得用带全局标志的正则/g

下面是几种实用的实现方式:

方法1:用input事件(推荐)

input事件比keyup覆盖场景更全,能捕获粘贴、右键粘贴、拖拽文本等所有内容变更的情况,而keyup只在键盘按键抬起时触发,有遗漏。

jQuery(document).ready(function($){
    const $targetInput = $("#field_ce5yi-other_2-otext");
    $targetInput.on('input', function(){
        // 把输入值里的所有逗号替换成点号,再赋值回去
        const updatedValue = $(this).val().replace(/,/g, '.');
        $(this).val(updatedValue);
    });
});

方法2:修正你原有的keyup版本

如果你更习惯用keyup,修正后的代码是这样的:

jQuery(document).ready(function($){
    $("#field_ce5yi-other_2-otext").keyup(function(){
        // 改用val(),同时修复replace的语法和全局替换逻辑
        $(this).val($(this).val().replace(/,/g, '.'));
    });
});

额外优化:从源头阻止逗号输入(可选)

要是想直接不让用户输入逗号,可以结合keydown事件拦截,再配合input处理粘贴的情况:

jQuery(document).ready(function($){
    const $targetInput = $("#field_ce5yi-other_2-otext");
    
    // 拦截逗号按键
    $targetInput.on('keydown', function(e){
        if(e.keyCode === 188){ // 逗号的keyCode是188
            e.preventDefault();
            // 直接插入点号
            $(this).val($(this).val() + '.');
        }
    });
    
    // 处理粘贴等非键盘输入的情况
    $targetInput.on('input', function(){
        $(this).val($(this).val().replace(/,/g, '.'));
    });
});

这样就能完美覆盖所有输入场景啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 10:14:33