允许在ShieldUI NumericTextBox中输入欧洲格式

时间:2016-09-19 10:50:16

标签: javascript jquery number-formatting shieldui

默认情况下,ShieldNumericTextBox不允许输入逗号并自动将输入的数字格式化为美国格式(例如,输入10000后,它将为10,000)。

我想将默认格式更改为欧洲格式,我在文本框的启动时找到(textTemplate)选项,但它对我的格式化输入没有用,它对于下一步添加文本很有用数字(例如KG,EUR ......等)。

$("#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:##,##}")。

并且在输入时它也不会格式化,只有当你完成并从输入中移除焦点时才会格式化,所以它不会有太多帮助。有什么帮助吗?

1 个答案:

答案 0 :(得分:3)

ShieldUI使用Globalize JS来处理特定于文化的值格式化。

在您的情况下,您应首先将文化设置为使用逗号而不是句点将整数与数字的十进制数字分开的文化。然后你可以设置textTemplate的格式,将其显示为一个带有2位十进制数字的数值,如下所示:

<!-- 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_"; }

将用逗号替换所有句号。