変数にポップアップメニューで選択した値を代入するには?(JavaScript)

[上に] [前に] [次に]
squall 1999/03/12(金) 15:01:18
え〜、ここのJavaScript入門で勉強させて頂いてます。
ちょっとつまってしまったんですが
変数にポップアップメニューで選択した値を代入するには、どのようにしていしたらいいんでしょうか?
フォームの名前は、JUNC,変数名は、mgc,ポップアップメニュー(Select文)の名前は、selです。
今は、このように書いているのですが
mgc = document.JUNC.sel.option.text;
option,textの指定もわからないです〜^^;
で、比較のところで
if (mgc == "M1"){ 
  base += 20;
}
としても、True時の処理が実行されません。
HELPお願いします。
※M1は、メニューの値でbaseは、変数です。

たこすけ 1999/03/12(金) 15:45:14
mgc = document.JUNK.sel[document.JUNK.sel.selectedIndex].value;

これで出来るとおもいます。何故こう書くのか分からない時は
「ここのJavaScript入門」をもう一度じっくり読んで下さい。
#意地悪ではないですよ〜

squall 1999/03/12(金) 16:18:19
う〜ん、やっぱり出来ないです。
True時の処理が実行されないです。ううっ、原因不明^^;
比較のところが間違ってます?
"=="でなくて"="にすると、if文無視して最初の処理が実行されちゃうし・・・。
処理したいことは、テキストフィールドに任意の数値入れて、ポップアップメニューから、値を選択して、ボタンクリックでもう一つのテキストフィールドに処理結果が表示されるというのをJavaScriptで作成しているのですが。

匿名希望 1999/03/12(金) 17:40:06
>比較のところが間違ってます?
間違ってませんよ。

>ううっ、原因不明^^;
いろいろと原因が思いうかぶのですが、それを全部書くよりは
スクリプトの部分とフォームの部分を全部載せて頂いた方が
解決しやすいと思うのですが・・・

「それはちょっと・・・」という場合は
>テキストフィールドに任意の数値入れて、ポップアップメニューから、値を選択して、ボタンクリック
>でもう一つのテキストフィールドに処理結果が表示される
この辺をもう少し詳しく書いて頂けますか?
#単純な足し算、引き算かどうか分からないもので・・・。

たこすけ 1999/03/12(金) 17:45:32
ご、五回目(-_- ;) ←名前入れ忘れの数

Tmb 1999/03/12(金) 17:48:47
mgc =document.JUNK.sel.options[document.JUNK.sel.selectedIndex].text;
でどうでしょう? NN4ではうまく動作しました。
「sel」の中に複数ある「option」のうち「selectedIndex」番目のものの
「text」,という意味だと考えれば・・・いいんでしょうかね?
個人的には<option>の方でvalue属性を指定して,「.text」の代わりに「value」
で判断させる方が何となく好きです。

匿名希望 1999/03/12(金) 18:17:28
>mgc =document.JUNK.sel.options[document.JUNK.sel.selectedIndex].text;
あぁ、.textで拾ってたのか。今気付いた(←うっかりものめ)

>個人的には<option>の方でvalue属性を指定して,「.text」の代わりに「value」
>で判断させる方が何となく好きです。
私もてっきりvalue指定してあるのかと思ってた。
(「M1」がtextとは思わなかったので「<option value=M1>メニュー1」とかしてるのかと思った)

偉そうなこと書いて、なんの参考にもならなかったのね>私。

たこすけ 1999/03/12(金) 18:20:30
今のは日本語入力が確定しないうちに
書き込んじゃったのよ〜 (T_T)

squall 1999/03/12(金) 22:03:11
[[解決]]
皆さん、いろいろサポートしていただきありがとうございます。
mgc=document.JUNK.sel.options.document.JUNK.sel.selectedIndex].text;
で指定したら、うまく出来ました。
結構、JavaScriptってやってみるとおもしろいです。
ホームページ作成に幅が広がりそうです(^。^)
これからもよろしくお願いします。

[上に] [前に] [次に]