登録フォームを、商品などの注文に利用したいといったことがあります。
そうした用途では、選択した商品数により金額が自動で計算されると便利です。
自動計算するサンプルを用意しました。よろしければご参考になさってください。
シナリオの「設定」から「基本設定の編集」を開き、フリー項目1に商品と金額、フリー項目2に個数、フリー項目3を合計金額の表示欄として設定しています。
シナリオの「設定」から「フォーム設定の編集」を開き、ヘッダー(またはフッター)のどちらかに、自動計算用のJavaScriptをいれます。
<script type="text/javascript"> <!-- // 自動計算スクリプト function auto_calc() { // フリー項目1 果物 var free1 = number_extraction($("select[name='touroku_free1']").val()); // フリー項目2 個数 var free2 = number_extraction($('#touroku_free2').val()); $('#touroku_free2').val(free2); //半角英数以外の文字消去 // 金額計算 var free3 = free1 * free2; $('#touroku_free3').val( separate(free3) + '円' ); } // 数値抽出 function number_extraction(item) { var price = ''; var regexp = /[0-9,]*/g; var results = item.match(regexp); for (var i = 0; results.length > i; i++) { if (results[i] > '') { price = results[i]; break; } } price = price.replace(',', ''); // カンマは削除します return price; } // 3桁ごとのカンマ区切り function separate(num) { return String(num).replace( /(\d)(?=(\d\d\d)+(?!\d))/g, '$1,'); } // フリー項目1(セレクト)イベント $(function(){ $("select[name='touroku_free1']").change( function() { auto_calc(); }).change(); }); // フリー項目2(インプット)イベント $(function(){ $("#touroku_free2").keyup( function() { auto_calc(); }).change(); }); // 合計は編集不可 $(function(){ $('#touroku_free3').attr('readonly',true); }); // --> </script>
上記JavaScriptは自由にカスタマイズしてお使いください。
ご自身でカスタマイズできない方は、簡単なカスタマイズでしたら技術サポートまでご相談ください。
コメント