2016-09-19 5 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を使用します。

あなたのケースでは、まず、文化を、ピリオドではなくカンマで数字の10進数字から区切るカルチャーに設定する必要があります。

<!-- 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はこのような2桁で数値として表示するために、あなたは形式を設定することができますtextTemplateの値:

textTemplate: function(value) { return "_custom_formatted_string_"; } 

すべてのピリオドをカンマで置き換えます。

+0

理由は分かりませんが、Globalize.culture( "de");すべてのカルチャパラメータは英語の書式のまま残っていましたが、numberFormatオブジェクトの(。)、(、)を特に逆にしていましたが、数値をアメリカからヨーロッパに変換しましたが、フィールド自体はユーザーからカンマを受け入れ、私は入力したものを変換せずにヨーロッパ形式で入力する必要があります。ありがとう。 –

+0

更新。文化を設定するには、前に間違ったファイルが含まれていましたが、今はそれが働いて変更されましたが、うまくいきませんでした。最初はすべてカンマが許されません。あなたはアメリカの番号を入力して、第二に、スピナーが動作していない、彼らは100,00から99,99にスイングします。どんな助け? –

関連する問題