###前提・実現したいこと
いつもお世話になっております。
現在カートの商品ページを想定し開発をしておりまして、
.itemPriceというクラスが付いた箇所にデフォルトの金額を表示させておいて、数量の変更により金額を乗算するという仕組みにしております。
乗算後の金額表示を3桁毎にカンマ区切りで表示をしたいのですが、「NaN」になってしまいます。
お手数おかけしますが、どなたかアドバイスを頂けますでしょうか?
よろしくお願いします。
###該当のソースコード
javascript
1<script type="text/javascript"> 2 3$(function() { 4 //デフォルトの金額を取得 5 var defaultPrice = setPrice($('.itemPrice').text()); 6 7 //数量が変更された場合 8 $('[name="cnt"], .FS2_figure_table_td_updn_btn input[type="image"]').on('keyup keydown click', function() { 9 price = defaultPrice; 10 price = separate(price); 11 var valCnt = $('[name="cnt"]').val(); 12 if(valCnt > 0){ 13 $(".itemPrice").text(price * valCnt + "円"); 14 } 15 else if(valCnt == 0){ 16 $(".itemPrice").text(price + "円"); 17 } 18 }); 19 // 0~9, テンキ―0~9, スペース, backspace, delete, →, ←, 以外は入力キャンセル 20 $('[name="cnt"]').on('keyup keydown', function(e) { 21 var k = e.keyCode; 22 if(!((k >= 48 && k <= 57) || (k >= 96 && k <= 105) || k == 32 || k == 8 || k == 46 || k == 39 || k == 37)) { 23 return false; 24 } 25 }); 26}); 27 28//数値を正規表現 29function setPrice(priceText) { 30 price = Number(priceText.replace(/[^0-9]/g, '')); 31 return price; 32} 33// 正規表現でセパレート 34function separate(num) { 35 return String(num).replace(/(\d)(?=(\d\d\d)+(?!\d))/g, '$1,'); 36} 37 38</script>
html
1<!--ここの金額を変更--> 2<span class="FS2_special_price">当店特別価格</span> 3<span class="itemPrice">10,800円</span> 4 5<form method="POST" action=""> 6 7<table border="0" cellspacing="2" cellpadding="0" class="FS2_figure_table"> 8<tbody> 9<tr> 10<td style="vertical-align:middle;">数量</td> 11<td style="vertical-align:middle;"><input name="cnt" type="text" value="1" size="3" maxlength="16000"></td> 12</tr> 13</tbody></table> 14 15</form> 16
###補足情報(言語/FW/ツール等のバージョンなど)
開発環境
https://js-form-price-test-yujiokayama.c9users.io/index.html
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/02/10 05:28