javascript(jQueryではない)を使って、フォームに入力時、計算された値をリアルタイムに表示するのを作っています。
javascript
1function price() { 2 var se01_b = document.getElementById('se01_b').value; 3 var se01_c = document.getElementById('se01_c').value; 4 var tsubo = parseInt(se01_b) * 0.3025; 5 var kingaku = parseInt(se01_b) * 0.3025 * parseInt(se01_c); 6 if (isNaN(tsubo)) { 7 var tsubo = ""; 8 } 9 if (isNaN(kingaku)) { 10 var kingaku = ""; 11 } 12 document.getElementById('tsubo').innerHTML = tsubo; 13 document.getElementById('kingaku').innerHTML = kingaku; 14 }
上記のコードで動かすと、意図通りになり、仕上げにカンマを付けようと思っても、リアルタイムにカンマが付けれない。
どこにカンマを付けるコードはどのようなコードにすれば良いですか?
ちなみにカンマを付けるのは、「kingaku」の所です。
できれば、フォームの「se01_c」です。
リアルタイムにするにしても入力の元となるhtmlの提示がないと的確な回答にはつながりにくいかと。イベント発生のトリガーも単に「リアルタイム」だけでは正確には伝わりません。要件や前提条件を整理し、具体的に記載してください。
あとコード後の日本語が若干おかしいです。「意図通り」が何なのかこれだけではわかりませんし、「どこにカンマをつけるコードはどのように」意味不明です。もう少し伝わりやすい文章に調整していただければと思います。
一般的に「ナンバーフォーマット」という形式を表す表現がありますが、それで間違いないのでしょうか。
回答をありがとうございます。カンマはお金の事で100,000のようにカンマを付けて表示したいということで、jun68yktさんが回答なさった方法で行きました。あと、「ナンバーフォーマット」とはどういうことですか?
そこは単語を知っているかどうかなので調べてもらいたいところなのですが・・・(本当に一般的な表現です)
「javascript ナンバーフォーマット」で検索してみたら、「.toLocaleString」が出てきました。それまでに「ナンバーフォーマット」という言葉を知りませんでした。初めて知りました。
単語の意味を調べたいのであればJavaScriptとか言語名はつけないほうが。まあ、それでJavaScriptによるやり方も見つかるので調べ方次第では自前で解決できたようでかもしれない内容だったということね(あと似たような質問はteratailにあったはずなので)
それが一般的かはともかく、数値を一定の書式に初期化するクラス(関数)はNumberFormatという名前で定義される事が多いようです(JavaScriptにはありません)。 http://php.net/manual/ja/function.number-format.php https://docs.oracle.com/javase/jp/8/docs/api/java/text/NumberFormat.html https://developer.android.com/reference/java/text/NumberFormat 言語によっては初期化時にオプションを付与できますが、mts10806 さんが仰っている「ナンバーフォーマット」はおそらくPHP流儀ですね。
「JavaScriptには NumberFormat がない」と書きましたが、new Intl.NumberFormat('ja-JP', {style:'currency',currency: 'JPY'}).format(1234) がありました。国と書式をオプションで設定できます。 https://qiita.com/shisama/items/661c33fef5cbe3bb8335 MS Excelでも [通貨] に分類されていますが、Web検索の検索語は「日本 通貨 書式 JavaScript」が良さそうです。
think49さん その関数 別質問で回答したことがあったので「一般的」としました。
回答1件
あなたの回答
tips
プレビュー