2016-09-19 2 views
1

По умолчанию ShieldNumericTextBox не позволяет вводить запятые и форматировать введенный номер автоматически в американский формат (например, после ввода 10000, это будет 10 000).Разрешить вход в Европейский формат в ShieldUI NumericTextBox

Я хочу изменить формат по умолчанию в европейском формате, я нашел (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: ##, ##}"), когда пользователь завершит ввод и фокус из текстового поля.

А также он не форматируется при наборе текста, только когда вы закончите и удалите фокус с входа, так что это не поможет. Любая помощь?

ответ

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

, который будет заменять все периоды запятой.

+0

Я не знаю, почему, но Globalize.culture («de»); вообще не работали, все параметры культуры остались для английского формата, я сделал, хотя специально отменил (.), (,) в объекте numberFormat, он преобразовал число от американского к европейскому, но само поле не принимайте запятые от пользователя, я хочу, чтобы пользователь вводил в европейском формате, а не конвертировать то, что мы ввели. Благодарю. –

+0

Обновление. Настройка культуры работала, раньше я включал неправильный файл, но теперь он работал и менялся, но он не выполнял работу должным образом, прежде всего, запятые все еще не разрешены, вы можете ввести американский номер, и он будет отформатирован, что бесполезно, во-вторых, прядильщики не работают, они качаются от 100,00 до 99,99. Любая помощь? –

Смежные вопросы