Javascript 允许在ShieldUI NumericTextBox中输入欧洲格式
默认情况下,ShieldNumericTextBox不允许键入逗号并自动将输入的数字格式化为美式格式(例如,键入10000后,数字将为10000) 我想将默认格式更改为欧洲格式,我在文本框启动时找到了(textTemplate)选项,但它不适用于我格式化输入,它有助于在数字旁边添加文本(例如KG、EUR…等) 当用户完成键入并聚焦文本框时,此文本模板将输出相同的字符串(“{0:###,##}”)Javascript 允许在ShieldUI NumericTextBox中输入欧洲格式,javascript,jquery,number-formatting,shieldui,Javascript,Jquery,Number Formatting,Shieldui,默认情况下,ShieldNumericTextBox不允许键入逗号并自动将输入的数字格式化为美式格式(例如,键入10000后,数字将为10000) 我想将默认格式更改为欧洲格式,我在文本框启动时找到了(textTemplate)选项,但它不适用于我格式化输入,它有助于在数字旁边添加文本(例如KG、EUR…等) 当用户完成键入并聚焦文本框时,此文本模板将输出相同的字符串(“{0:###,##}”) 而且它在输入时也不会格式化,只有当你完成并将焦点从输入中移除时才会格式化,所以不会有多大帮助。有什么
而且它在输入时也不会格式化,只有当你完成并将焦点从输入中移除时才会格式化,所以不会有多大帮助。有什么帮助吗?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>
这将用逗号替换所有句号。我不知道为什么,但全球化。文化(“de”);一点也不起作用,所有的区域性参数都保留为英语格式,虽然我特别反转了numberFormat对象中的(.),(,),它将数字从美国转换为欧洲,但字段本身不接受用户的逗号,我希望用户输入欧洲格式,而不是转换我们输入的内容。谢谢。更新。设置区域性工作,我以前包含了一个错误的文件,但现在它工作并更改了,但它没有做好工作,首先,逗号仍然不允许,你可以输入美国数字,它将被格式化,这是无用的,其次,微调器不工作,它们从100,00摆动到99,99。有什么帮助吗?
<!-- 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: function(value) { return "_custom_formatted_string_"; }