金額項目等、数値のみ入力のテキストボックスに対するカンマ編集。
タイミングとしてはテキストボックスのonBlurで以下処理を行う。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
function addComma(item) { // テキストボックスの入力値を取得 var value = item.value; // ブランクだったり数値じゃなかったりの場合は処理終了 if (value == null || value.length == 0 || isNaN(value)) { return; } // 値を数値型に置き換える(0サプレス) var num = Number(value); // また文字列型に置き換える value = String(num); var i; // 3文字区切りでカンマ編集を行うので、こんなfor文 for (i = 0; i < value.length/3; i++) { // 正規表現とreplaceでカンマ編集 value = value.replace(/^([+-]?\d+)(\d\d\d)/,"$1,$2"); } // カンマ編集後の値をテキストボックスの値に設定 item.value = value; } |
次に、フォーカス時はカンマ編集を解除するためにはonFocusのタイミングで以下処理を行う。
1 2 3 4 5 6 7 8 9 10 11 |
function removeComma(item) { // テキストボックスの入力値を取得 var value = item.value; // カンマで区切られた値同士を結合 item.value = value.split(",").join(""); // テキストボックスの値が選択状態になる(これは無くてもOK) item.focus(); item.select(); } |