フォーム内に▼次のような2つのセレクトボックスと1つのテキストボックスがあります。
お支払い方法と配送方法を選んだときにそれぞれに対応した送料をテキストボックスに入れるにはどうしたらよいでしょうか?
--------------------------------------
お支払い方法:[ 代金引換 ▼]
配送方法: [ 宅配便 ▼]
送料: [ 800円 ]
--------------------------------------
●セレクトボックス1:お支払い方法
銀行振込、郵便振替、代金引換
●セレクトボックス2:配送方法
郵便、宅配便
●テキストボックス:送料
※ユーザーが変更することはできない。
セレクト |セレクト |テキスト
ボックス1|ボックス2|ボックス
-----------------
銀行振込 |郵便 |200円
銀行振込 |宅配便 |600円
郵便振替 |郵便 |200円
郵便振替 |宅配便 |600円
代金引換 |郵便 |400円
代金引換 |宅配便 |800円
http://www.ueda.info.waseda.ac.jp/~gaku/js/how01 …
http://www.openspc2.org/reibun/javascript/form_t …
上記URLを参考に試行錯誤しているのですが期待どおりに動作しないため、こちらに投稿させていただきました。
Javascriptはかろうじて読むことは可能ですが、自分で書くことがままならいレベルです。どうぞよろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
このような書き方ではどうでしょうか?
*** JavaScript 部分***
function fncChgSouryou() {
//銀行振込の場合
if (document.all["selectShiharai"].value == "0") {
//郵便の場合
if (document.all["selectHaisou"].value == "0") {
document.all["outSouryou"].value = "200";
//宅配便の場合
}else if (document.all["selectHaisou"].value == "1") {
document.all["outSouryou"].value = "600";
}
//郵便振替の場合
}else if (document.all["selectShiharai"].value == "1") {
//郵便の場合
if (document.all["selectHaisou"].value == "0") {
document.all["outSouryou"].value = "200";
//宅配便の場合
}else if (document.all["selectHaisou"].value == "1") {
document.all["outSouryou"].value = "600";
}
//代金引換の場合
}else if (document.all["selectShiharai"].value == "2") {
//郵便の場合
if (document.all["selectHaisou"].value == "0") {
document.all["outSouryou"].value = "400";
//宅配便の場合
}else if (document.all["selectHaisou"].value == "1") {
document.all["outSouryou"].value = "800";
}
}
}
*** html 部分***
<select name="selectShiharai" size="1" tabindex="0" onchange="javascript:fncChgSouryou()">
<option value="0" selected>銀行振込</option>
<option value="1">郵便振替</option>
<option value="2">代金引換</option>
</select><br>
<select name="selectHaisou" size="1" tabindex="0" onchange="javascript:fncChgSouryou()">
<option value="0" selected>郵便</option>
<option value="1">宅配便</option>
</select><br>
<input type="text" name="outSouryou" size="10" value="200" style="text-align:right" readonly>円
JavaScript部分は上記だとかなり丁寧(?)な書き方で以下のように書くことも
可能です。
function fncChgSouryou() {
if (document.all["selectShiharai"].value == "2") {
if (document.all["selectHaisou"].value == "0") {
document.all["outSouryou"].value = "400";
}else {
document.all["outSouryou"].value = "800";
}
}else {
if (document.all["selectHaisou"].value == "0") {
document.all["outSouryou"].value = "200";
}else {
document.all["outSouryou"].value = "600";
}
}
}
項目名やメソッド名などはお好みで変えて下さい。
とても参考になりました。
上記の方がわかりやすく、簡単に理解することができました。
ようやく希望通りのものができあがり大変感謝しております。ありがとうございました。
No.3
- 回答日時:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=SHIFT_JIS">
<title>Sample</title>
<script type="text/javascript">
<!--
var Price = [
[200,200,400],//郵便:銀行振込,郵便振替,代金引換
[600,600,800],//宅配便:銀行振込,郵便振替,代金引換
];
function calc(f){
f.SOURYOU.value = Price[f.HAISOU.value][f.SHIHARAI.value]+"円";
}
//-->
</script>
</head>
<body>
<form>
<table>
<tr><td>お支払い方法</td><td><select name="SHIHARAI" onchange="calc(this.form)">
<option value="0" selected>銀行振込</option>
<option value="1">郵便振替</option>
<option value="2">代金引換</option>
</select></td></tr>
<tr><td>配送方法</td><td><select name="HAISOU" onchange="calc(this.form)">
<option value="0" selected>郵便</option>
<option value="1">宅配便</option>
</select></td></tr>
<tr><td>送料</td><td><input type="text" name="SOURYOU" size="10" value="200円" style="text-align:right" readonly></td></tr>
</table>
</form>
</body>
</html>
こんなにも短いコードで書けるとは驚きでした。おかげさまでようやく希望通りのものができました。心から感謝しております。ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
プルダウン選択を変更すると、...
-
連動プルダウンのclonenode
-
複数のプルダウンを1つにまとめ...
-
プルダウンの値によって活性・...
-
Javascriptでフォームのセレク...
-
<input>の選択肢をプルダウンメ...
-
selectが変更されたらnameを指...
-
何がおかしいのでしょうか?
-
2段階連動セレクトボックスでの...
-
セレクトメニューの選択項目に...
-
ボタンを押したらラジオボタン...
-
JavaScript プルダウンメニュ...
-
Selectボックスの一覧表示方法
-
セレクトボックスで警告
-
セレクトボックスで、最後にク...
-
プルダウンメニューに連動する...
-
selectを変更不可にしたい
-
VBScriptでHTMLのセレクトボッ...
-
データベースからのarray を j...
-
プルダウンの値をphpファイルへ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プルダウン選択を変更すると、...
-
<input>の選択肢をプルダウンメ...
-
Selectボックスの一覧表示方法
-
javascriptでセレクトボックス...
-
同じ名前のセレクトがある場合...
-
全てのselect要素をデフォルト...
-
【javascript】連想配列からセ...
-
スマホのフォームでのselect複...
-
selectを変更不可にしたい
-
JavaScriptで<select>の<option...
-
複数のプルダウンを1つにまとめ...
-
プルダウンの値によって活性・...
-
VBScriptでHTMLのセレクトボッ...
-
webページの一部のみの更新につ...
-
selectのすべての値を送信する方法
-
javascript:データを日本語で...
-
プルダウンのoptionの表示・非...
-
リストボックス内の重複したも...
-
select要素のvalueを配列で取得...
-
C#(csファイル)とjavascriptと...
おすすめ情報