我搜索了几天,如何将我的双和双输入格式化为十进制=逗号和千分隔符=点
示例:
123456.01 ==> 123.456,01 14,02 ==> 14,02 ==> 987.654.321,002
我到目前为止所做的:
但我怎么能:
1-当用户打字时,应该格式化号码吗?我找到了这样的解决方案:如何在键入输入框文本时格式化它,但我不能用Dot 小提琴换逗号
2-在此帖子之后创建自定义助手(将十进制更改为双)帖子
堆叠溢出有很多解决方案,但似乎没有一个适合我。
我希望我的问题很清楚,很抱歉我的英语很差。
编辑:
我决定忽略客户端格式,没有更多的点和逗号,但我仍然对区域设置有问题。
我的应用程序仍然将点作为十进制分隔符,我如何修复这个问题?更有趣的是,它接受一些字段,而另一些则不接受,尽管它们都具有相同的属性、设置.等见屏幕截图


有错误的字段是计算字段。
var url = '@Url.Action("CalculateDropPrec", "Drop")';
$('.calc').change(function () {
// get the values of the textboxes
var numUsed = $('#numUseText').val();
var totNumUsed = $('#totNumUseText').val();
$.post(url, { nUsed: numUsed, tUsed: totNumUsed }, function (response) {
$('#precText').val(response);
});
return false;
});
@Html.TextBoxFor(model => model.PerceDropTot, new {data_val = "false", id = "precText", name = "precText", @class = "form-control input-sm drop-read", placeholder = "0.0", @readonly = "readonly" })
public JsonResult CalculateDropPrec(double nUsed, double tUsed)
{
var result = CommonComputation.CalcPrecDrop(nUsed, tUsed);
return Json(result);
}发布于 2017-04-04 14:25:08
这可能不是你想要的方向,但是“按你键入的数字格式”真的需要吗?缺点是这种行为可能变得非常棘手,我也是指用户。假设您键入了数字"1234“,它变成了"1.234”。当输入字段再次聚焦,插入符号放置在这里:"1.|234“时,是否清楚当Backspace被击中时会发生什么?点是移除的,还是1?当用户尝试手动输入,或.时会发生什么?所有的问题都需要考虑。此外,当您在表单中发布值时,格式化时它不是有效的数字。
由于这些原因,即使像我们大量使用的Kendo UI NumericTextBox这样的数字输入的高级控件,也选择格式化一个仅显示的值,而不是拦截用户输入(尝试链接的演示)。
但是您也可以检查cleave.js是如何解决这个问题的,它可以实时格式化,但可能使用浏览器区域性设置。但就个人而言,当试图纠正已经存在的值时,不喜欢它的行为。
https://stackoverflow.com/questions/43208714
复制相似问题