JavaScript初心者です。
FormとJavaScriptでしたいことがあるのですが、
知識がなくて困っています。わかる方いましたら
ご教授くださいm(_ _)m
(ショッピングカートの)フォームのオプション選択の
ドロップダウンメニューで、オプションを選択すると
それに反応して、その横に配置した画像を変える~
という事がしたいです。
以下のURLにサンプルを見つけて、これと同じことがしたい!
と思ったのですが…
■ドロップダウンメニューで画像が変わる(JavaScript)
http://www.mdn.co.jp/webcre/Tips/Vol12/js_imagec …
このサンプルではフォームの OPTION value
に0などナンバリングをしておいて、Javascriptで
if(fname==0){document.imgsmp.src=img0.src;}
など数字を指定して読み込むようになっていますが、
自分の環境の場合、フォームのオプション選択ごとに
価格を変えるため、OPTION valueに、
OPTION value="グリーン,3000"
というようにオプション名と追加価格を記入しています。
こういった場合、どの用にしたらいいのでしょうか?
自分のフォームのソースの一部を以下に書きます。
--------------------Form-----------------------------
<INPUT type="hidden" class="select_erea" name="option_price_name" value="オプション名">
<SELECT name="option_price" size="15" >
<OPTION value="レッド,1000">レッド</OPTION>
<OPTION value="オレンジ,2000">オレンジ</OPTION>
<OPTION value="グリーン,3000">グリーン</OPTION>
</SELECT>
-----------------------------------------------------
質問も初めてなので、至らない点が多々あるかと思いますが、
よろしくお願いします。
No.4ベストアンサー
- 回答日時:
とりあえず、そのサンプルのまま とするなら
fname=parts.options[parts.selectedIndex].value;
を
fname=parts.selectedIndex;
と変えるだけで使えます。
valueに関係なくOptionリストの上から順に、
0,1,2,3,4・・・の番号です。
そのサンプルもう少し整えた方が良いと思いますけど。
No.3
- 回答日時:
取得した値をカンマ区切りで分割し、色識別する値を取得したら
いかがでしょう?
サンプル
<SCRIPT language="JavaScript">
<!--
img0=new Image()
img0.src="images/red.gif"
img1=new Image()
img1.src="images/orange.gif"
img2=new Image()
img2.src="images/green.gif"
img3=new Image()
img3.src="images/blue.gif"
img4=new Image()
img4.src="images/glay.gif"
function imgChange(parts){
fname=parts.options[parts.selectedIndex].value;
var hoge = fname.value.split(',')
if(hoge[1]==1000){document.imgsmp.src=img0.src;}
if(hoge[1]==2000){document.imgsmp.src=img1.src;}
if(hoge[1]==3000){document.imgsmp.src=img2.src;}
if(hoge[1]==4000){document.imgsmp.src=img3.src;}
if(hoge[1]==5000){document.imgsmp.src=img4.src;}
}
// -->
</SCRIPT>
No.2
- 回答日時:
イメージのファイル名などはvalueに持たせているのでしょうか?
たとえば『レッド,1000』なら、『,』の前の「レッド」とか
ある一定の法則にしたがっているならプログラミング可能ですよ
たとえばvalueを『イメージファイル名,名称,価格』といった具合にしているなら
function imgChange(oParts)
{
// 選択された項目のデータを『,』で分割
var ss = oParts.options[oParts.SelectedIndex].value.split(",");
if ( ss[0] != "undfined" ) {
// 拡張子無しなら
document.imgsmp.src = ss[0]+".jpg";
// 拡張子付きなら
// document.imgsmp.src = ss[0];
}
}
といった具合で ・・・
回答ありがとうございます。
フォームもサンプルを見ながら書いたので、
仕組みがわかっていないのですが、
イメージのファイル名などは
valueには反映してませんでした。
カンマで区切ればvalueにいろんな要素を
盛り込めるんですね。
ありがとうございます。
No.1
- 回答日時:
サンプルに合わせての修正を考えて見ます。
・ "グリーン,3000"
は、
"green.gif,3000"
にするとより簡単に出来ます。
・ fname=parts.options[parts.selectedIndex].value;
は、
---------------------------------------------------------
var fname0=parts.options[parts.selectedIndex].value;
var fname1=fname0.split(/,/);
fname=fname1[0];
tanka=fname1[1];
---------------------------------------------------------
に変更してみます。
fnameは、 そのまま同じ
tankaには、単価
が入っているはずです。適当に処理してください。
"green.gif,3000"のファイル名は長さは任意ですが、”,”を含んではいけません。
以上です。おかしい所があればお知らせください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript セレクトボックスを2つ選択してメッセージなどを表示するには。~運賃検索プログラムを完成させたい~ 1 2022/07/22 11:10
- JavaScript 以前の質問だと、どの条件でも配列が表示されてしまいます。 1 2022/07/09 11:40
- JavaScript sessionStorageを調べています。 1 2023/06/20 12:41
- JavaScript セレクトボックスで配列を呼び出したい。 1 2022/07/08 20:14
- JavaScript セレクトを全て選択されていないと、文字によるエラーメッセージを表示させるコードを調べています 2 2023/06/22 15:48
- JavaScript console.logがどうしても2つ機能しないのでアドバイスをくださいお願いします 2 2022/07/07 22:13
- JavaScript JavascriptからSQLへ繋ぎ方が分からない 3 2022/07/07 00:27
- JavaScript switch文のswitch(n)の部分を複数の値にするか、if文に変えてほしいです。 1 2022/07/27 17:18
- JavaScript セレクトボックスを2つ設けて選択して初めてメッセを表示 1 2022/07/27 12:15
- JavaScript 電車の運賃を出すプログラムを作っています。 2 2022/06/22 09:36
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
onchangeイベントを強制的に発...
-
テキストフィールド未入力の場...
-
ボタン押下しテキストエリアに...
-
javaScriptの変数をJavaの変数...
-
追加ボタンを押した際に ok ボ...
-
VBScriptで子画面へ配列のデー...
-
ボタンをクリックして文字を置...
-
クリックさせたいが、click()が...
-
ボタンかリンクをクリックする...
-
if構文
-
JavaScript Form OPTION value
-
vbsでフォーム入力ができません
-
小窓が残像を残して移動
-
ひとつのボタンでタイマーを動...
-
innerHTML内では改行は禁止?
-
BackSpaceしたい(QNo.2734284の...
-
プルダウンで選択したページに...
-
formのfileの値をhiddenでも持...
-
return trueとreturn falseの用...
-
プルダウン 項目が多いので先頭...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
onchangeイベントを強制的に発...
-
iOSのみダブルタップが必要
-
onclickが動作しない
-
追加ボタンを押した際に ok ボ...
-
ボタンかリンクをクリックする...
-
innerHTML内では改行は禁止?
-
クリックさせたいが、click()が...
-
javaScriptの変数をJavaの変数...
-
formのfileの値をhiddenでも持...
-
JavascriptでDOM-based XSSの発...
-
クリックでテーブル内の背景色...
-
VB.NETで<Input>タグ、<text...
-
開いた子ウィンドウにあるボタ...
-
jQueryで設定したイベントハン...
-
javascriptで作成されたテーブ...
-
HTMLのテキストボックスへのド...
-
テキストフィールド未入力の場...
-
JavaScriptのfileオブジェクト...
-
JSのボタンを複数う使うには
-
オンクリックで現在時刻の取得→...
おすすめ情報