默认情况下,ShieldNumericTextBox不允许键入逗号并自动将输入的数字格式化为美国格式(例如,在键入10000之后,它将是10,000)。
我想要将默认格式更改为欧洲格式,我在文本框的初始位置找到了(textTemplate)选项,但它不适用于格式化输入,它对于在数字旁边添加文本(例如KG,EUR...etc)很有用。
$("#numericTextBox").shieldNumericTextBox({
textTemplate: "{0:##,##}", // The numbers in my case are percentages with 2 digits after decimal.
min: 0,
max: 1,
step: 0.01,
spinners: true
});当用户完成键入并将焦点移出文本框时,此textTemplate将输出相同的字符串("{0:##,##}")。
而且它不会在输入时格式化,只有当你完成输入并移走输入的焦点时才会格式化,所以它不会有太大帮助。有什么帮助吗?
发布于 2016-09-20 20:08:26
ShieldUI使用Globalize JS来处理特定于文化的值格式。
在您的情况下,应首先将区域性设置为用逗号而不是句点分隔数字的整数位和小数位的区域性。然后,您可以设置textTemplate的格式,将其显示为具有两个十进制数的数字值,如下所示:
<!-- include the globalize culture -->
<script src="globalize.culture.de.js" type="text/javascript">//</script>
<script type="text/javascript">
$(document).ready(function () {
// set a German Globalize culture
Globalize.culture("de");
$("#numericTextBox").shieldNumericTextBox({
textTemplate: "{0:n2}", // display as numeric having 2 decimal fields
min: 0,
max: 1,
step: 0.01,
spinners: true
});
});
</script>处理显示的文本的另一种方法是为textTemplate的值提供如下所示的函数:
textTemplate: function(value) { return "_custom_formatted_string_"; }它将用逗号替换所有句点。
https://stackoverflow.com/questions/39571340
复制相似问题