• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:javascriptでの完全一致による表記(2))

javascriptでの完全一致による表記

このQ&Aのポイント
  • javascriptを使用して、往路と復路を区別して価格を表示したい。
  • 支払方法に応じた割引額を計算したい。
  • 選択された出発地、到着地、種別、枚数に応じて価格を計算し、合計金額を表示するスクリプトを作成したい。

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

  • ベストアンサー
  • mikemike7
  • ベストアンサー率87% (97/111)
回答No.1

こんな感じでしょうか。 <script type="text/javascript"><!-- var ryoukinhyo={ "東京":{ "名古屋":{ "自由席":{"価格":100} } }, "名古屋":{ "東京":{ "自由席":{"価格":100} } } } var waribikihyo={ "銀行振込":100, "代金引換":0 } function check(f){ var shuppatu=f.shuppatu.value; var touchaku=f.touchaku.value; var shubetu =f.shubetu.value; var paytype =f.paytype.value; var maisu =parseInt(f.maisu.value); var maisu2 =parseInt(f.maisu2.value); var tanka =f.tanka; var tanka2 =f.tanka2; var waribiki = f.waribiki; var goukei =f.goukei; var p2 = 0; if(!shuppatu || !touchaku || !shubetu || !paytype || !maisu) return false; var p=(!ryoukinhyo[shuppatu] || !ryoukinhyo[shuppatu][touchaku] || !ryoukinhyo[shuppatu][touchaku][shubetu])?false:ryoukinhyo[shuppatu][touchaku][shubetu]["価格"]*maisu; if(p) { tanka.value=p.toString(); if(f.shuppatu2.value && f.touchaku2.value && f.shubetu2.value && maisu2){ p2=(!ryoukinhyo[f.shuppatu2.value] || !ryoukinhyo[f.shuppatu2.value ][f.touchaku2.value] || !ryoukinhyo[f.shuppatu2.value][f.touchaku2.value][f.shubetu2.value])?false:ryoukinhyo[f.shuppatu2.value][f.touchaku2.value][f.shubetu2.value]["価格"]*maisu2; if(p2){tanka2.value=p2.toString();} } if(waribikihyo[paytype]){ waribiki.value=waribikihyo[paytype].toString(); }else{ waribiki.value="割引はありません"; } goukei.value=(p + p2 - waribikihyo[paytype]).toString(); }else{ tanka.value="0"; waribiki.value="割引はありません"; 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><br> 復路:<select name="shuppatu2" onchange="check(this.form)"> <option value="">出発選択</option> <option value="東京">東京</option> <option value="名古屋">名古屋</option> </select> <select name="touchaku2" onchange="check(this.form)"> <option value="">到着選択</option> <option value="名古屋">名古屋</option> <option value="東京">東京</option> </select> <select name="shubetu2" onchange="check(this.form)"> <option value="">種別選択</option> <option value="自由席">自由席</option> </select> <select name="maisu2" onchange="check(this.form)"> <option value="1">1</option> <option value="2">2</option> </select><br> <select name="paytype" onchange="check(this.form)"> <option value="">支払選択</option> <option value="銀行振込">銀行振込</option> <option value="代金引換">代金引換</option> </select> <div>往路合計:<input type="text" name="tanka" value="0" /> + 復路合計:<input type="text" name="tanka2" value="0" /> - 割引:<input type="text" name="waribiki" value="0" /> = 合計:<input type="text" name="goukei" /></div> </form>

qoo-tarou
質問者

お礼

mikemike7 様 またまた、素晴らしいコード、本当に有難うございます! 私が求めていたコード以上に凄いと思いましたのが、往路の選択は必須にしようと思っておりました。 その為、復路のみ入力しても計算が行われない・・・スゴイです! 本当に有難うございました。

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

関連するQ&A

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

    前回、以下の質問に対して素晴らしいコードをお教えいただきました。 ホームページに組み込みを行っている最中にどうしても追加したい機能がありまして。 下部のコードは、以下の仕組みになっています。 往路⇒【東京】→【名古屋】=<単価>*【枚数】=<合計> 復路⇒【名古屋】→【東京】=<単価>*【枚数】=<合計> 【支払方法*1】=<割引額> 往路+復路-割引額=<合計金額> *1:銀行振込と代金引換があり、銀行振込を選択しますと、割引が行われる仕組みです。 組み込みたいと思っている機能ですが、銀行振込を選択しますと、100円引きになっていますが、 銀行振込を選択した場合、1枚毎に100円割引をしたいです。 以下のような感じです。 (往路枚数+復路枚数)*100⇒往路合計+復路合計-割引額=合計 特にフォームを追加したいとかではありません。 割引額を表示するフォームに「(往路枚数+復路枚数)*100」この計算を表示し、 総合計に往路合計+復路合計-割引額を表示したいです。 JavaScriptにお詳しい方、何卒、よろしくお願いいたします。 ↓以下コード↓ <script type="text/javascript"><!-- var ryoukinhyo={ "東京":{ "名古屋":{ "自由席":{"価格":100} } }, "名古屋":{ "東京":{ "自由席":{"価格":100} } } } var waribikihyo={ "銀行振込":100, "代金引換":0 } function check(f){ var shuppatu=f.shuppatu.value; var touchaku=f.touchaku.value; var shubetu =f.shubetu.value; var paytype =f.paytype.value; var maisu =parseInt(f.maisu.value); var maisu2 =parseInt(f.maisu2.value); var tanka =f.tanka; var tanka2 =f.tanka2; var waribiki = f.waribiki; var goukei =f.goukei; var p2 = 0; if(!shuppatu || !touchaku || !shubetu || !paytype || !maisu) return false; var p=(!ryoukinhyo[shuppatu] || !ryoukinhyo[shuppatu][touchaku] || !ryoukinhyo[shuppatu][touchaku][shubetu])?false:ryoukinhyo[shuppatu][touchaku][shubetu]["価格"]*maisu; if(p) { tanka.value=p.toString(); if(f.shuppatu2.value && f.touchaku2.value && f.shubetu2.value && maisu2){ p2=(!ryoukinhyo[f.shuppatu2.value] || !ryoukinhyo[f.shuppatu2.value ][f.touchaku2.value] || !ryoukinhyo[f.shuppatu2.value][f.touchaku2.value][f.shubetu2.value])?false:ryoukinhyo[f.shuppatu2.value][f.touchaku2.value][f.shubetu2.value]["価格"]*maisu2; if(p2){tanka2.value=p2.toString();} } if(waribikihyo[paytype]){ waribiki.value=waribikihyo[paytype].toString(); }else{ waribiki.value="割引はありません"; } goukei.value=(p + p2 - waribikihyo[paytype]).toString(); }else{ tanka.value="0"; waribiki.value="割引はありません"; 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><br> 復路:<select name="shuppatu2" onchange="check(this.form)"> <option value="">出発選択</option> <option value="東京">東京</option> <option value="名古屋">名古屋</option> </select> <select name="touchaku2" onchange="check(this.form)"> <option value="">到着選択</option> <option value="名古屋">名古屋</option> <option value="東京">東京</option> </select> <select name="shubetu2" onchange="check(this.form)"> <option value="">種別選択</option> <option value="自由席">自由席</option> </select> <select name="maisu2" onchange="check(this.form)"> <option value="1">1</option> <option value="2">2</option> </select><br> <select name="paytype" onchange="check(this.form)"> <option value="">支払選択</option> <option value="銀行振込">銀行振込</option> <option value="代金引換">代金引換</option> </select> <div>往路合計:<input type="text" name="tanka" value="0" /> + 復路合計:<input type="text" name="tanka2" value="0" /> - 割引:<input type="text" name="waribiki" value="0" /> = 合計:<input type="text" name="goukei" /></div> </form>

  • javascriptについての質問です。複数のselect等で選択した

    javascriptについての質問です。複数のselect等で選択した文字の値をinputに表示したいのですが2 こちらで <script> function changeFunc(f){ f.elements["text1"].value=f.elements["select1"].value+f.elements["select2"].value; } </script> <FORM> <SELECT NAME="select1" onchange="changeFunc(this.form)"> <OPTION VALUE=""></OPTION> <OPTION VALUE=" a">a</OPTION> <OPTION VALUE=" b">b</OPTION> <OPTION VALUE=" c">c</OPTION> </SELECT> <SELECT NAME="select2" onchange="changeFunc(this.form)"> <OPTION VALUE=""></OPTION> <OPTION VALUE=" 壱">壱</OPTION> <OPTION VALUE=" 弐">弐</OPTION> <OPTION VALUE=" 参">参</OPTION> </SELECT> <input TYPE="text" NAME="text1" VALUE=""> </FORM> というプログラムを教えていただいたのですが 最新のブラウザーではどれもが動作するのですが IE5.IE6.IE7で動かなくて困っております。 IE5は仕方ないカナとも思ってしまったりするのですが IE6 IE7では動いて欲しくて困っています。 どなたか助けていただけないでしょうか

  • 複数のjavascript

    うまく説明できないのですが、 プルダウンメニューが1つならエラーは出ないのですが、 下記のようにプルダウンメニュー2つにするとエラーが出てしまいます。。 どのように分ければエラーが出ないでしょうか・・・? 出来ればスッキリした形がベストなんですが・・・。 どうか宜しくお願い致します。 ------------------------------------------------------------ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>step25</title> <META http-equiv="Content-type" content="text/html; charset=Shift_JIS"> <script launguage="JavaScript"> <!-- function openlink(){ var n = document.f1.links.selectedIndex; if(n!=0){ location.href = document.f1.links.options[n].value; } } --> </script> </head> <body> <FORM name="f1"> <H2>美術館&博物館のリンク集</H2> <select name="links" onChange="openlink()"> <option>リンク先を選択</option> <option value="http://www.momat.go.jp">1111</option> <option value="http://www.momak.go.jp">2222</option> <option value="http://www.nmwa.go.jp">3333</option> <option value="http://www.tnm.go.jp">4444</option> <option value="http://www.kyohaku.go.jp">5555</option> <option value="http://www.narahaku.go.jp">6666</option> </select> <select name="links" onChange="openlink()"> <option>リンク先を選択</option> <option value="http://www.momat.go.jp">1111</option> <option value="http://www.momak.go.jp">2222</option> <option value="http://www.nmwa.go.jp">3333</option> <option value="http://www.tnm.go.jp">4444</option> <option value="http://www.kyohaku.go.jp">5555</option> <option value="http://www.narahaku.go.jp">6666</option> </select> </FORM> </body> </html> ------------------------------------------------------------

  • Javascriptの動的リスト作成について

    Javascriptの動的リスト作成について お世話になっています。 Javascriptで選択リストを動的に変えたいと思っています。 また、Javascriptで作成したリストは、multipleとして複数選択できるようにしたいと考えています。 そこで、下記のようにスクリプトを書きました。リスト2(smallwheretag)が1つのみ選択を許すときは、うまくいったのですが、multipleにするためにnameを配列にしたところ、うまくリストが作成できなくなってしまいました。 なにかスクリプトに変更が必要なのでしょうか?ご教授お願いいたします。 <HTML部> <select name="bigwheretag[]" onchange="javascript:listChange(this.value);"> <option value="">検索項目</option> <option value="11%">自然</option> <option value="12%">街</option> <option value="13%">家庭</option> </select> <select name="smallwheretag[]" multiple> <option value="">大項目を選択して下さい</option> </select> <Javascript部> var where1_text = new Array("川", "海", "山", "滝", "その他"); var where1_value = new Array("1101", "1102", "1103", "1104", "1199"); flag1 = document.form.bigwheretag.value; if (flag1=="11%") { document.form.smallwheretag.length = where1_text.length; for(var i=0; i<where1_text.length; i++) { document.form.smallwheretag.options[i].text = where1_text[i]; document.form.smallwheretag.options[i].value = where1_value[i]; } }・・・・・・・・以下同様

  • 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)の値の分だけテキストボックスなり何なりを生成したいのですがうまくいきません。 どの様にしたらテキストボックスなどを表示できますか?

  • セレクトで選んだ数の計算方法

    初心者なので基本的な質問ですが、よろしくお願いします。 セレクトで選んだ数値が2つあり、その積を表示したいのです。 どうしたらよいでしょうか。 </script> <script langauage="JavaScript"> <!-- function calcNum(){ var num1 = parseInt(document.getElementById('s1').value); var num2 = parseInt(document.getElementById('s2').value); var kei = num1 * num2; } //--> </script> </head> <body> <form name="form1"> <select size="1" name="select2" id="s2" onchange="selectChange()"> <option value="5"> 5</option> <option value="9"> 9</option> </select> </form> <form name="form1"> <select size="1" name="select1" id="s1" onchange="selectChange()"> <option value="2"> 2</option> <option value="12">12</option> </select> </form> <input type="text" name="kei" size="10">  <input type="button" value="計算" onmousedown="calcNum()"> スクリプトのところだけの抜粋でわかりにくいかもしれないのですが、 どのようにしたら良いか、教えてください。 根本的に違っているようでしたら、どうやればよいのか教えてください。 よろしくお願いします

  • javascriptについて

    function df(){ document.ad.ad1.value=500; } function df2(a){ var sty=a.ad2.selectedIndex; a.ad3.value=eval(a.ad1.value)*eval(a.ad2.options[sty].value); } function df3(){ var s1=document.ad.ad3.value; var s2=document.ad.ad4.value; var fv=s1+"円\n"+ s2+"様"; var don=confirm(fv); } function df4(){ var p=0; if(document.ad.ad4.value==""){ p=1; } if(p){ alert("記入漏れ"); return false; } else{ return true; } } --> </script> </head> <body> <form action="#" method="POST" name="ad"> <p>ラーメン<input type="text" soze="20" value="500" name="ad1" onChange="df()">円</p> <p><select name="ad2" onChange="df2(this.form)"> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> 個 </select> </p> <p>合計<input type="text" size="20" name="ad3">円</p> <p>備考:<input type="text" size="20" name="ad4"></p> <p><button onClick="df3();df4();"><img src="rtp/migi.jpg"></button></p> </form> </body> </html> 内容に間違いがあっても データーを送ってしまいます。 何故なんでしょうか?

  • Javascriptでセレクトメニューの選択チェックの方法

    Javascriptでセレクトメニューのフォームをチェックしたいのですが、 リストメニューの「選択して下さい」を選んだままだと、「番号を選択して下さい。」とエラーを出したいのですが、下記の様に書いてみたのですが、うまく動きません…どのように書けばいいか教えて下さい。宜しくお願いします。 <script language=\"JavaScript\"> <!-- function Check() { var str = document.form.a.value; if(document.form.a.value == "0") { alert("番号を選択して下さい"); } //--> </script> <form id="form" name="form" method="post" action="##"> <select name="a" onblur="Check();"> <option value="0">選択して下さい</option> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> </select> <input type="submit" name="Submit" value="登録" onClick="Check();"> </form>

  • firefox3.6でJavaScriptが動かない

    firefox2.xのころからだと思うのですが、 JavaScriptのOnChangeイベントが反応しません。 環境は、少し古いのですが、 ホームページビルダ10です。 ホームページ上へコンボボックスを配置して0~4の値を選択するようにしています。 ソースは以下のようになっています。 ======= <script language="JavaScript"> <!-- function Pent(formobj,pent0) { var v; v = eval(pent0.value); Pent.value = v; } //--> </script> <td valign="middle" height="28" width="13"><select size="1" style="font-size : 24px;" name="pent0" onchange="Pent(form,pent0)"> <option value="0" selected>0</option> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> </select></td> ======= このソースでIE6では問題なく選択できるのですが、 firefoxだとonchangeに反応していないようです。 対処方法をお教えください。

  • html onchange

    下記のコードでf002は動きますが、f001が動きません。 scriptで作ったオプションメニューもonChangeが働くようにするには、いかがしたらよろしいでしょうか? <script language="JavaScript"><!-- function f001(){ if (document.test.s1.value==2) alert("2が入力されました"); } function f002(){ if (document.test.s2.value==2) alert("2が入力されました"); } var i,ht=[]; i=0; ht[i] = '<select onChange="f001()" id="s1" >'; for( var i=1; i<=5;) ht[i] = '<option value='+(i)+(i==1?' selected':'')+'>'+(i++)+'</option>'; ht[i] = '</select>'; document.write('s1 =', ht.join('')); // --></script> <form name="test"> s2 = <select onChange="f002()" id=s2> <option value=1 selected>1</option> <option value=2>2</option> <option value=3>3</option> <option value=4>4</option> </select> </form>