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

使用jQuery number插件的带千位分隔符数值如何转整数存入数据库

解决方案

方法1:后端直接处理(改代码最少,最稳妥)

转换异常的原因是输入框提交的数值带千位分隔符逗号,intval()解析时遇到非数字字符就会停止读取,只会保留第一个逗号前的数字。直接在转整数前把所有逗号删除即可:

// 先移除所有千位分隔符逗号,再转整数
$nett_budget = str_replace(',', '', $request->get('nett_budget'));
$insert['nett_budget'] = intval($nett_budget);

如果存在用户输入小数点的场景,可以按需加取整逻辑:

$insert['nett_budget'] = (int)round((float)str_replace(',', '', $request->get('nett_budget')));

方法2:前端提交时读取原始数值(不需要修改后端逻辑)

jQuery number插件本身内置了获取无格式原始数值的方法,不需要修改插件配置,只需要在表单提交前,把输入框的显示值替换为原始数值即可:

$('form').on('submit', function() {
  // 调用插件方法获取原始数值,直接覆盖输入框的带格式值再提交
  $('#nett_budget').val($('#nett_budget').number('getValue'));
  return true;
});

这种方式提交到后端的数值本身就没有千位分隔符,直接用原有intval()转换即可。

替代插件推荐

如果要更换同类插件,可使用jquery.inputmask,配置简单,同样支持自动格式化千位分隔符、提交时自动输出原始数值,基础配置示例:

$('#nett_budget').inputmask('integer', {
  groupSeparator: ',',
  autoGroup: true,
  rightAlign: false,
  removeMaskOnSubmit: true // 提交时自动移除掩码,输出原始数值
});

开启removeMaskOnSubmit参数后不需要额外写提交事件处理,插件会自动处理提交内容。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 08:36:07