• ベストアンサー

フォームにて自動計算したい・・・

自力でネットで調べてある程度まで完成しましたが、合計金額の計算式がわからない為詰まりました・・・ まず、オークションで落札された代金を入力してもらうと、合計・消費税・税込み合計が表示される。 その次に発送先を選択されると、合計・消費税・税込み合計が更新(再計算)される・・・ というようにしたいのですが・・・ まったくわからず困っております(^^;お助けください

質問者が選んだベストアンサー

  • ベストアンサー
noname#15647
noname#15647
回答No.2

失礼しました。独学である程度Javascriptを学んでいる方だと思いこんでいました。 <SCRIPT TYPE="text/javascript"> <!-- function keisan(){ // 設定開始 var tax = 5; // 消費税率 // 商品1 var price1 = document.form1.rakusatsu.value; // 送料 (1行です) var carriage1 = document.form1.goods1.options[document.form1.goods1.selectedIndex].value; // 文字列を数値に変換 var total1 = parseInt(price1); carriage1 = parseInt(carriage1); // 消費税算出 var tax2 = Math.round((total1 * tax) / 100); // 結果を表示 document.form1.field_total1.value = total1; // 合計を表示 document.form1.field_tax.value = tax2; // 消費税を表示 document.form1.field_total2.value = total1 + tax2 + carriage1; // 税込合計を表示 } // --> </SCRIPT> 以上のようになります。 <INPUT TYPE="text" NAME="rakusatsu" SIZE="20" VALUE="落札金額を入力してください"> を <INPUT TYPE="text" NAME="rakusatsu" onChange="keisan()" SIZE="20" VALUE="落札金額を入力してください"> とすると、代金を入力して、他の部分を選択すると合計・消費税・税込みが表示できます。 補足要求: これは練習でしょうか、個人で使う物でしょうか、それとも他の方に使ってもらう物でしょうか。

finos21
質問者

お礼

とてもとても親切にご指導頂きありがとうございました。 実はこれは練習用でも他人に渡すものでもなく、個人でオークション出品している人の顧客管理の為に使用しようとしております。このデーターをCSVに落としてデーターベースにする予定です。 未だにJavaScriptの詳細の理解ができておりませんが、何とかなりました(^^; ありがとうございました!!

その他の回答 (1)

noname#15647
noname#15647
回答No.1

ソースを拝見しました。 まず、price1に代入しているのは代金ではなく送料です。 document.form1.rakusatsuが代金になります。 あとは、消費税を計算したあとに送料を足すと合計になります。 代金を入力したときに消費税、合計を表示するには、rakusatsuのonChangeイベントでkeisan()を呼びます。onChangeイベントだと計算されるのはフォーカスがはずれたとき(rakusatsu以外が選択されたとき)になります。 他にツッコミどころがありますが、あとで作り込むのかもしれないのでとりあえず指摘を控えます。

finos21
質問者

補足

人の作成したJavascriptページにただ単にフォームを追加しただけなんで動作しないのは分かるんですが、いかんせんド素人なんで、ご指摘の通りどこを編集すればいいのか分かりません(^^; いろいろ試しているのですが・・・ 下記あってますよね?? <SCRIPT TYPE="text/javascript"> <!-- function keisan(){ var tax = 5; var price1 = document.form1.rakusatsu.options[document.form1.rakusatsu.selectedIndex].value; var total1 = parseInt(price1); document.form1.field_total1.value = total1; var tax2 = Math.round((total1 * tax) / 100); document.form1.field_tax.value = tax2; document.form1.field_total2.value = total1 + tax2; } // --> </SCRIPT>

関連するQ&A