kendoNumericTextBox asp.net mvc 中的十进制值问题
Problems with decimal value in kendoNumericTextBox asp.net mvc
我有以下问题。在波兰文化中使用应用程序,脚本 kendo.culture.pl-PL.min.js 和 kendo.messages.pl-PL.min.js 已正确加载,我可以在控制台中检查它:发出 kendo.culture( ) 我得到对象 {name: "pl-PL", numberFormat: Object,....
在我看来我正在使用
@Html.Kendo().NumericTextBoxFor(m => m.LimitMax)
其中 LimitMax 是十进制,值为 200。当我的视图呈现时,我在 KendoNumericTextBox 中看不到任何值 - 如果我想检索它,我得到 null。
我试图调查这个问题,我发现:
1)助手生成的输入是这样的:
<input data-val="true" data-val-number="Pole musi być liczbą." data-val-range="Pole musi być z zakresu od 0 do 2147483647." data-val-range-max="2147483647" data-val-range-min="0" id="LimitMax" name="LimitMax" type="number" value="200,0000" />
2) jQuery 在控制台中给我以下消息:
The specified value "200,0000" is not a valid number. The value must match to the following regular expression: -?(\d+|\d+\.\d+|\.\d+)([eE][-+]?\d+)?
我可以通过设置来解决这个问题:
@Html.Kendo().NumericTextBoxFor(m => m.LimitMax).Culture("en-US")
但是我觉得这种方式不对。
能否请您提供解决此问题的任何想法?
不幸的是,无论是我自己还是在 Internet 上,我都没有找到任何解决方案。我不得不稍微破解一下,在视图呈现后我做了以下技巧:
if ($("#LimitMax").data("kendoNumericTextBox").value() === null) {
var rawValue = $("#LimitMax").attr("value");
if (rawValue) {
rawValue = rawValue.replace(",", ".");
}
if ($.isNumeric(rawValue)) {
$("#LimitMax").data("kendoNumericTextBox").value(rawValue);
}
}
我有以下问题。在波兰文化中使用应用程序,脚本 kendo.culture.pl-PL.min.js 和 kendo.messages.pl-PL.min.js 已正确加载,我可以在控制台中检查它:发出 kendo.culture( ) 我得到对象 {name: "pl-PL", numberFormat: Object,....
在我看来我正在使用
@Html.Kendo().NumericTextBoxFor(m => m.LimitMax)
其中 LimitMax 是十进制,值为 200。当我的视图呈现时,我在 KendoNumericTextBox 中看不到任何值 - 如果我想检索它,我得到 null。
我试图调查这个问题,我发现: 1)助手生成的输入是这样的:
<input data-val="true" data-val-number="Pole musi być liczbą." data-val-range="Pole musi być z zakresu od 0 do 2147483647." data-val-range-max="2147483647" data-val-range-min="0" id="LimitMax" name="LimitMax" type="number" value="200,0000" />
2) jQuery 在控制台中给我以下消息:
The specified value "200,0000" is not a valid number. The value must match to the following regular expression: -?(\d+|\d+\.\d+|\.\d+)([eE][-+]?\d+)?
我可以通过设置来解决这个问题:
@Html.Kendo().NumericTextBoxFor(m => m.LimitMax).Culture("en-US")
但是我觉得这种方式不对。
能否请您提供解决此问题的任何想法?
不幸的是,无论是我自己还是在 Internet 上,我都没有找到任何解决方案。我不得不稍微破解一下,在视图呈现后我做了以下技巧:
if ($("#LimitMax").data("kendoNumericTextBox").value() === null) {
var rawValue = $("#LimitMax").attr("value");
if (rawValue) {
rawValue = rawValue.replace(",", ".");
}
if ($.isNumeric(rawValue)) {
$("#LimitMax").data("kendoNumericTextBox").value(rawValue);
}
}