jQuery - 数字格式的小片段无法按预期工作
jQuery - Small snippet for number formatting not working as expected
我有以下代码将数字格式化为用户类型:
//Add commas as user types
$('input.num_format').keyup(function(event) {
// skip for arrow keys
if(event.which >= 37 && event.which <= 40) return;
// format number
$(this).val(function(index, value) {
return value.replace(/'D/g, "").replace(/'B(?=('d{3})+(?!'d))/g, ",");
});
});
上面的代码的工作JS小提琴:http://jsfiddle.net/d0u5hu36/
现在,在为我的网站做前端之后,我正在使用 PHP 做后端,但是当我尝试从具有上述 JS 代码段的输入中提交数据时,我只是从一个数字中获取前 3 个字符,例如:从"350,000"中,我只能提交到我的表"350",为什么会这样?我希望能够提交"350000",我相信这与客户端有关。
附加信息:MySQL 列是 "mediumint(9)"
提交值时,请在提交之前尝试对字符","进行编码,因为 具有特殊含义 如果您通过表单发布,您可以使用
encodeURIComponent()
在使用PHP的服务器端,您可能需要进行额外的解码
utf8_decode(string)
例如,在通过 GET 执行表单提交时,理想的 url 看起来像 [一个控件名称多个值] [逗号用法]
test.php?parameter=a1,a2,a3
希望对您有所帮助!
更新
尝试在 php 中的 POST/GET 中循环变量 [控件名称的变量,其中值用逗号格式化] 并将它们连接成一个字符串 [假设您使用的是 POST]
$str = "";
foreach($_POST['<control_name>'] as $item)
{
$str = $str.$item;
}
echo $str;
感谢@Hemant给我这个想法。这实际上是一个服务器端问题,因为该字段是一个整数,它会忽略逗号后面的数字。所以我所做的是使用以下正则表达式代码删除除数字以外的所有字符:
preg_replace('#[^0-9]#','',strip_tags($string));
相关文章:
- Javascript:selenium Web驱动程序isDisplayed()不工作
- jQuery UI自动完成突然停止工作
- AngularJS UI路由器不能像ng路由器那样工作
- HTML5音频加载和播放获胜'我不能在iPad上工作
- 以下 Chrome 扩展程序 JavaScript 代码片段究竟是如何工作的
- jQuery - 数字格式的小片段无法按预期工作
- jQuery:这个简单的片段是如何工作的(下拉菜单)
- Javascript:代码片段,无法使其工作(设置和读取cookie)
- 为什么下面的片段没有'我不在JS中工作
- 从缓存中加载window.location.reload和散列片段在Chrome不工作
- 将片段附加到节点不工作在ie7,但在ie8中工作
- 为什么格式化器不能在片段xml中工作
- 嗨,为什么这个简单的代码片段不工作?我困惑
- setTimeout是如何在Node.JS上工作的,请解释这个代码片段
- 这个Angular JS代码片段是如何工作的?
- 这个用于从数组中删除重复项的代码片段是如何工作的
- 加载页面片段时,jQuery加载(URL)不工作
- Var vs let:这个JavaScript片段是如何工作的
- 这个js片段是如何工作的
- JavaScript片段中的Ruby变量不能与Slim lang一起工作