我正在尝试使用kendo NumericTextBox文化“es-AR”,它使用逗号作为小数分隔符。问题是,当我发送动作NumericTextBox的值时,发送的值是“XY”但预期“X,Y”。 (逗号)
NumericTextBox有没有办法以逗号作为小数分隔符返回一个数字?
以下是我正在尝试制作的一个例子。
http://jsfiddle.net/bustoscarlos/qS3pC/16/
$(document).ready(function() {
kendo.culture("es-AR");
});
var numeric = $("#price").kendoNumericTextBox({
value:25.36
}).data("kendoNumericTextBox");
<!-- Expect value with comma , not with point -->
$('#valueOfprice').val(numeric.value());
编辑: 此numericTextbox位于网格的PopUp编辑器中。 当我向服务器提交更改时,需要使用逗号发送值, 因为服务器需要一个逗号。
网格定义的一部分
.Editable(e => e.Mode(GridEditMode.PopUp).TemplateName("TrasladoPopupEditViewNew")).Events(ev => ev.Save("gridSave"))
.DataSource(dataSource => dataSource
.Ajax()
.ServerOperation(true)
.Events(events => events.Error("error"))
.Model(model =>
{
model.Id(e => e.Id);
})
.Create(create => create.Action("Create", "Controller"))
.Read(read => read.Action("Read", "Controller"))
.Update(update => update.Action("Update", "Controller"))
.Destroy(destroy => destroy.Action("Delete", "Controller"))
))
答案 0 :(得分:0)
Kendo数字文本框的值为&#39; number&#39;。 DOM元素有一个字符串作为内容,因此当您为元素指定编号时,会分配numeric.value().toString()
。默认情况下,这会使用.
作为十进制标记,而且我不相信有一种方法可以在JavaScript中更改它。
但是,您可以使用以下逗号替换该字符串中的.
:
var value = numeric.value();
var valueAsString = value.toString();
var valueStringWithComma = valueAsString.replace('.', ',');
(有关插图,请参阅demo)
如果您愿意,可以在窗口小部件的原型中添加方法,例如:
kendo.ui.NumericTextBox.fn.getValueAsString = function () {
var value = this.value();
if (value) {
return value.toString().replace('.', ',');
} else {
return "";
}
}
或者您可以使用剑道formatter:
kendo.ui.NumericTextBox.fn.getValueAsLocalString = function () {
return kendo.toString(this.value(), "n2");
}