• 締切済み

JavaScript初心者です。

JavaScript初心者です。 やりたいことは XX度チェックのようなページを書き換えて 20個の商品名を並べ、チェック数に応じた価格をテキストボックスで表示させたいです。 複数の場合に割引が適用されるため、数式では表せません。 (1個1000円、2個1800円、3個2600円・・・・) さらにオプションでプレゼント用とした場合に500円プラスする という計算です。 近いものはいくつか検索で見つけましたが 単価x個数というものや チェック後に別窓で結果が表示されるものばかりでした。 ほぼ一からになりますが、どなかたご教授いただければ幸いです。 よろしくお願いします。

みんなの回答

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.2

#1です。 質問者様にはあたりまえのことでも、回答者には書いてないことはわかりません。 >チェックの付いた数を算出。 >その数に応じた割引金額を表示させたいのです。 >計算式は数式では表せませんが、表はあります。 >(2個の時はいくら、10個の時はいくらという感じ) そもそも、商品毎に単価設定はなくてみな同じ単価なの? 同じ商品を複数注文することはないの?(禁止している?) 割引って個数で決まるものなの?商品の組み合わせでかわらないの?(単価が同じならありうるけど) HTMLの見本もないので、文章から読み取れる範囲で… (これ以上は、わからないので無理) <html> <head><title>test</title> <script type="text/javascript"> function calc(f) { var table = [ 0,0,200,400,600,800,1000,1200,1400,1600,1800, 2000,2200,2400,2600,2800,3000,3200,3400,3600,3800 ]; var inp = f.form.getElementsByTagName('input'); var i = 0, e, n = 0, opt, e_k, e_w, e_o; while (e = inp[i++]) { if (e.type == 'checkbox') { if (e.name != 'option') n += e.checked?1:0; else opt = e.checked; } else { if (e.name == 'kosu') e_k = e; else if (e.name == 'waribiki') e_w = e; else if (e.name == 'roption') e_o =e; } } e_k.value = n + '個'; e_w.value = table[n] + '円'; e_o.value = opt?'500円':'なし'; } </script> </head> <body> <form> <input type="checkbox" name="s1">商品1<br> <input type="checkbox" name="s2">商品2<br> <input type="checkbox" name="s3">商品3<br> <input type="checkbox" name="s4">商品4<br> <input type="checkbox" name="s5">商品5<br> <input type="checkbox" name="s6">商品6<br> <input type="checkbox" name="s7">商品7<br> <input type="checkbox" name="s8">商品8<br> <input type="checkbox" name="s9">商品9<br> <input type="checkbox" name="s10">商品10<br> <input type="checkbox" name="s11">商品11<br> <input type="checkbox" name="s12">商品12<br> <input type="checkbox" name="s13">商品13<br> <input type="checkbox" name="s14">商品14<br> <input type="checkbox" name="s15">商品15<br> <input type="checkbox" name="s16">商品16<br> <input type="checkbox" name="s17">商品17<br> <input type="checkbox" name="s18">商品18<br> <input type="checkbox" name="s19">商品19<br> <input type="checkbox" name="s20">商品20<br> <input type="checkbox" name="option">オプション<br> <hr> <input type="button" value="計算" onclick="calc(this)"><br> <label>個数<input type="text" name="kosu" value=""></label> <br> <label>割引<input type="text" name="waribiki" value=""></label> <br> <label>オプション<input type="text" name="roption" value=""></label> </form> </body> </html>

blanco44
質問者

補足

ありがとうございました! 感動しました。 あとは少し勉強して 価格+オプション500が表示されるようにやってみます。 ちなみに商品は同じ大きさの色違いの小物です。 本当にありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.1

>複数の場合に割引が適用されるため、数式では表せません 少なくとも計算(又は処理)方法が提示されないと、考えようがありません。(小売店の店長がそのときの駆け引きで値段を決めるようなのは無理) ご提示のサンプル(?)だと >1個1000円、2個1800円、3個2600円・・・・ 単純に2個目からは2割引とかでも当てはまるけれど・・・? まったく計算ロジックがない場合は、表を作っておいて、その表から個数に応じて値段を求めるとかの方法もありますけれど? >オプションでプレゼント用とした場合に500円プラスする 個々の商品についてそれぞれプレゼント用のオプションがあって、商品数に応じて×500円なのか、全体にそのオプションがあって500円プラスか否かの2択なのかが読み取れません。 まずはこのあたりの考え方を明確にするのと、簡略化したHTML部分のサンプルあたりをご提示なされば、どなたかが回答してくれるでしょう。

blanco44
質問者

補足

私の書き方がまずかったですね。 申し訳ありません。 チェックボックス20個(商品名付き)を並べて チェックの付いた数を算出。 その数に応じた割引金額を表示させたいのです。 計算式は数式では表せませんが、表はあります。 (2個の時はいくら、10個の時はいくらという感じ) それとは別にオプションのチェックボックスを1つ表示させて それにチェックが付いていると判断すると商品の個数に関係なく 商品合計金額に500円プラスさせたいです。 JavaScriptは難しいですね。 基本も何もまったくわかっていないので 書き換えぐらいしかできず 応用できません。 あきらめた方がいいのかもしれません。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • JavaScript超初心者です。

    JavaScript超初心者です。 フォームを作成してます。 ★JavaScriptの記載方法の質問 下記の内容をJavaScriptで記載することは可能でしょうか? 1.チェックボックスにチェックがされていたら、そのまま確認画面へ。 2-a、 チェックボックスにチェックがされていなかったら、     confirmで「はい」か「いいえ」を出し、「はい」の場合は、そのまま確認画面へ。 2-b、 「いいえ」の場合は、画面はそのままで、confirm画面が消える。 もし、お時間がある方がおりましたら、教えてください。 よろしくお願いいたしますm--m;

  • Access:チェックボックスを使ってレポートに振り分ける

    はじめまして。 顧客への配送品管理でAccessを使うことになりまして つまづいております。 顧客への配送品がA社から送られるものかB社から送られるものかを 配送会社に送る報告書にまとめるのですが、一枚の用紙に まとめる必要があり、それをチェックボックスを使用して 1レポート内に分けて表示することは出来ないかと 悩んでいます。 1フォーム内に10個のチェックボックスとそれに対応させたい項目が チェックボックスと同数あります。 その10個のチェックボックスのON/OFFを 1レポート内でON/OFF項目に振り分けて表示したいのですが。 <フォーム> [顧客氏名] [チェックボックス□][配送品1][個数1][単価1][小計1] [チェックボックス□][配送品2][個数2][単価2][小計2] [チェックボックス□][配送品3][個数3][単価3][小計3] [チェックボックス□][配送品4][個数4][単価4][小計4] [チェックボックス□][配送品5][個数5][単価5][小計5] [チェックボックス□][配送品6][個数6][単価6][小計6] [チェックボックス□][配送品7][個数7][単価7][小計7] [チェックボックス□][配送品8][個数8][単価8][小計8] [チェックボックス□][配送品9][個数9][単価9][小計9] [チェックボックス□][配送品10][個数10][単価10][小計10] </フォーム> ↓ <レポート> [顧客氏名] チェックボックスON [配送品][個数][単価] [配送品][個数][単価] [配送品][個数][単価] チェックボックスOFF [配送品][個数][単価] [配送品][個数][単価] [配送品][個数][単価] </レポート> 何卒ご助言とご助力をお願い致します。

  • 多分簡単なJavaScriptなんだと思います。

    JavaScript初心者です。 チェックボックスが5つ有り、任意のチェックボックスをチェックして実行ボタンを押すと、sentakuという名前のテキストボックスにチェックしたボックスの値が代入されるjavascriptの記述を教えて下さい。 例えば、1番目と3番目と5番目に、チェックを入れて実行すると、テキストボックスsentakuには「1,3,5」と表示されるとベターです。

  • Javascriptでどうしてもうまく動きません・・・

    いつもお世話になってます! ある編集ページがあって、登録ボタンを押すと、入力漏れ等チェックして、問題なければ「登録します。よろしいですか?」と表示させ、OKなら処理ページへ移動させます。NGなら、確認窓を閉じます。 そこに、"del_chk"というチェックボックスを作り、そのチェックボックスをチェックして登録ボタンを押すと、「このレコードを削除します。よろしいですか?」と表示させ、OKなら、再度「本当に削除します。よろしいですか??」と表示させ、OKなら、処理ページへ移動させます。ただし、NGを押せば、押した時点で確認窓を閉じさせたいのです。 そこで、JavaScriptを考えてみましたが、何も確認窓がでてこず、困っています。。。 どこが間違えているのかわかりません。。どなたか添削をお願い致します。 <script type="text/javascript"> <!-- function FormCheck(){ //すべて異常ないとき if(!document.form.del_chk.checked){ if(confirm("登録します。よろしいですか?")){ return true; break; }else{ return false; break; } }else{ if(confirm('削除します。よろしいですか?')){ if(confirm("本当に削除します。よろしいですか??")){ return true; break; }else{ return false; break; } } } return true; } //--></script> <formタグの所に、onsubmit="return FormCheck();"を付け加えています。 すみません、よろしくお願いします。 (あと、わかればこれも・・・ <formタグを<td>の中などで使うと、表示がずれるのですが、なにかわかればこちらもよろしくお願いします。たとえば、行の高さが異様に膨らんだり・・・)

  • javascriptのDOMについてなんですが・・・

    閲覧有難うございます。 JavaScriptのDOMを用いてテキストボックスを生成しようと考えているのですがうまくいきません。 <form name="form" action="index2.php"> <select id="factor" onchange="swicthForm()"> <option value="0">選んでください</option> <option value="1">1個</option> <option value="2">2個</option> <option value="3">3個</option> <option value="4">4個</option> <option value="5">5個</option> </select> </form> <br> <script type="text/javascript"> function swicthForm(){ var options = document.form.factor.value; alert(options); } } </script> を用いてSELECTでいくらを選んだかが表示することが出来ました。 alert(options)の値の分だけテキストボックスなり何なりを生成したいのですがうまくいきません。 どの様にしたらテキストボックスなどを表示できますか?

  • javascriptでの完全一致による表記(2)

    以前、以下のように質問を行ったのですが、 新たな事をやろうと、分からない事がでてきてしまい、 調べたのですが・・・解決に至らず悩んでおります。 ↓前回の質問↓ http://okwave.jp/qa/q6733434.html 料金表は、全て同じ価格で問題無いのですが、 1つのメールフォーム内で「往路」・「復路」と分けて、価格の表示をしたいです。 往路⇒【東京】→【名古屋】=<単価>*【枚数】=<合計> 復路⇒【名古屋】→【東京】=<単価>*【枚数】=<合計> 【支払方法*1、2】=<割引額> 往路+復路-割引額=<合計金額> *1:代金引換・銀行振込があり、銀行振込を選択の場合、100円割引したいです。 *2:代金引換を選択した場合、<割引額>のところに、「割引はありません」と表示したいです。 ※【 】は、プルダウンです。 ※< >は、テキストフォームです。 お詳しい方、どうぞ、よろしくお願いいたします。 ↓以前お教えいただきましたスクリプトとタグです↓ ↓長くなってしまいそうだった為、選択数を減らしました↓ <script> var ryoukinhyo={ "東京":{ "名古屋":{ "自由席":{"価格":100} }, }, "名古屋":{ "東京":{ "自由席":{"価格":100} }, } } function check(f){ var shuppatu=f.shuppatu.value; var touchaku=f.touchaku.value; var shubetu =f.shubetu.value; var maisu =parseInt(f.maisu.value); var tanka =f.tanka; var goukei =f.goukei; if(!shuppatu || !touchaku || !shubetu || !maisu) return false; var p=(!ryoukinhyo[shuppatu] || !ryoukinhyo[shuppatu][touchaku] || !ryoukinhyo[shuppatu][touchaku][shubetu])?false:ryoukinhyo[shuppatu][touchaku][shubetu]["価格"]; if(p) { tanka.value=p.toString(); goukei.value=(p*maisu).toString(); }else{ tanka.value="0"; goukei.value="【この区間は、販売しておりません】"; } } </script> <form> <select name="shuppatu" onchange="check(this.form)"> <option value="">出発選択</option> <option value="東京">東京</option> <option value="名古屋">名古屋</option> </select> <select name="touchaku" onchange="check(this.form)"> <option value="">到着選択</option> <option value="名古屋">名古屋</option> <option value="東京">東京</option> </select> <select name="shubetu" onchange="check(this.form)"> <option value="">種別選択</option> <option value="自由席">自由席</option> </select> <select name="maisu" onchange="check(this.form)"> <option value="1">1</option> <option value="2">2</option> </select> <div>単価:<input type="text" name="tanka" value="0" /> - 合計:<input type="text" name="goukei" /></div> </form>

  • 【JavaScript】プルダウンで数字を選択後、即時計算したいですが

    【JavaScript】プルダウンで数字を選択後、即時計算したいですが 方法がわかりません。 http://bunjin.com/java/calc.html 以上のサンプルページでは、チェックボックスを押した直後、 下部のテキストボックスに金額が表示されるように設定されていますが、 チェックボックスの横などにプルダウンで数字を表示させて、 その数字の積を合計金額に表示させたいのです。 例) 「ラーメン(500円)」のチェックボックスにチェック(合計金額には「500 円」と表示) ↓ その「ラーメン(500円)」の横にプルダウンボックスを選択(値は1,2,3,・・・) ↓ 選択した値により、合計金額を変化させたい(プルダウンで1を選べば500円、2を選べば1000円、・・・) どうかよろしくお願いします。

  • javascript void0; ってなんでしょう?

    Mozilla Firefoxのブラウザを使っています。 ブラウザ上のボタンを押すと、 画面の左下欄外に「javascript void0;」と表示されており、 そこから先に進めません。 ツール-オプションで「javascriptを有効にする」にチェックは入れています。 違うパソコンでは問題ないのですが、 どうすれば解決するのでしょうか?

  • javascript void0; って何ですか?

    カテゴリ違いでしたら申し訳ございません。 Mozilla Firefoxのブラウザを使っています。 ブラウザ上のボタンを押すと、 画面の左下欄外に「javascript void0;」と表示されており、 そこから先に進めません。 ツール-オプションで「javascriptを有効にする」にチェックは入れています。 違うパソコンでは問題ないのですが、 どうすれば解決するのでしょうか?

  • Javascript? チェックボックスと・・・・

    HTMLのチェックボックスやラジオボタンのタグで、 チェックをつけずに次の画面へアクションをおこすと ”チェックつけなさい”ポップアップ画面を表示させたいのですがJavaScriptなのでしょうか? 記述方法をよろしくお願いします。

    • ベストアンサー
    • Java