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

jQuery提交带空格数值时前端计算显示与数据库结果不一致问题

问题原因

$.trim() 只能移除字符串首尾的空格,无法处理数字中间的千位分隔空格。你输入的10 000经过parseInt解析时,遇到中间的空格会直接终止解析,最终只拿到数值10,因此前端计算结果错误。而PHP端你调用了remove_space()处理了提交的金额参数,所以数据库存储的数值是正确的,问题完全出在前端回调的计算逻辑。

解决方案

1. 前端取值时移除所有空格

将输入值里的所有空格全局替换为空,再做后续计算和提交,修改原jQuery代码中的取值逻辑:

// 原代码:var money = $('#number_bank').val();
// 修改为:
var money = $('#number_bank').val().replace(/\s/g, '');

正则/\s/g会匹配字符串中所有的空格字符,全局替换后就能得到不带空格的纯数字字符串。

2. 优化parseInt解析逻辑

给parseInt加上第二个参数10,指定按十进制解析,避免部分场景下出现的八进制解析异常:

var money_in_bank = parseInt(<?php echo AS_session_row($_SESSION['ID'], 'AS_bankmoney', $pdo) ?>, 10) + parseInt(money, 10);
var money_on_hand = parseInt(<?php echo AS_session_row($_SESSION['ID'], 'AS_money', $pdo) ?>, 10) - parseInt(money, 10);

可选优化

可以给输入框绑定input事件,实时过滤非数字字符、自动格式化千位分隔符,避免用户输入非法字符,降低后续处理出错概率。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 15:09:02