JavaScriptでHTMLのSELECTタグで選ばれたOPTIONのVALUEを取得するには?2

[上に] [前に] [次に]
玉露 2000/02/24(木) 18:13:29
こんにちわ。

初歩的な質問で申し訳有りません。

プルダウンメニューを作ってみたのですが、うまく動きません。
過去のログを見て、そのとおりに作ってるつもりなのですが、なぜかvalueに値が入らないのです。

コードは以下のものです。


<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" Content="text/html; charset=x-sjis">
<TITLE></TITLE>
<SCRIPT LANGUAGE=javascript>
<!--

function ButtonClick() {

var tako='';
tako = document.formname.selectname.options[document.formname.selectname.selectedIndex].value;
document.formname.text1.value=tako;
}

//-->
</SCRIPT>
</HEAD>
<BODY>
<FORM name="formname">

        リストから選択する
<SELECT name="selectname">
<option>バリュウ1です</option>
<option>バリュウ2です</option>
</SELECT>

<INPUT type="text" id=text1 name=text1>
<INPUT type="button" value="Button" id=button1 name=button1 onClick="ButtonClick();">
</FORM>
</BODY>
</HTML>

どなたか御教授して頂けませんでしょうか?
よろしくお願いします。

玉露 2000/02/24(木) 18:16:41
言葉足らずでした。
したい事は単純に、
1.プルダウンメニューで選択する。
2.ボタンを押下
3.テキスト(text1)にvalueを表示

です。
よろしくお願いします。



です

ポケ鬼!! 2000/02/24(木) 18:54:06
スクリプトでoptionの値を取り出す場合、option要素にvalue要素が必須になります。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html40/strict.dtd">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/xhtml; charset=Shift_JIS">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<title>サンプル</title>
<script type="text/javascript">
<!--
function ButtonClick(obj)
{
    var tako;
    tako = obj.selectname.options[obj.selectname.selectedIndex].value;
    obj.text1.value = tako;
}
//-->
</script>
</head>
<body>
<form method="get" action="" name="formname" id="formname">
<select name="selectname" id="selectname">
<option value="バリュウ1です">バリュウ1です</option>
<option value="バリュウ2です">バリュウ2です</option>
<input type="text"  name="text1" id="text1" value="">
<input type="button" name="button1" id="button1" value="Button" onclick="ButtonClick(formname);">
</select>
</form>
</body>
</html>

ポケ鬼!! 2000/02/24(木) 18:55:10
間違えた・・・

<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">

玉露 2000/02/24(木) 19:08:11
なるほど!

早速のお返事有り難うございます〜
出来ました!!!いやあああああ有り難い!!!
そうだったんですね。
もうずーっと悩んでたのですが、思い切って質問してみてよかったです。
本当に感謝ですポケ鬼!!さん!!

有り難うございました。

andi 2000/02/24(木) 19:19:27
http://www.tohoho-web.com/js/form.htm
にある[window.]document.form.element.option.text
の事でしょうか?
valueを設定しなくても取得できそう。

ポケ鬼!! 2000/02/24(木) 20:05:41
>valueを設定しなくても取得できそう。

げっ!!本当だ!初めて知った!(=^0^=)
基本的にvalueは省略しないタチなので、、、

玉露 2000/02/25(金) 21:30:18
[[解決]]
ほお!なるほどお勉強になります。
そんな手もあるんですね。
andiさん有り難うございました!!

玉露 2000/02/26(土) 14:23:06
解決マークを付けたのに失礼します。
恥ずかしながら、もう一つ質問してもよろしいでしょうか?

今度はテキストとプルダウンメニューを連動させるように作りたいのですが、これまた何度本を見ても全くうまくゆかず。。。

以下はコードです。
------------------------------------------------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html40/strict.dtd">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/xhtml; charset=Shift_JIS">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<title>サンプル</title>
<script type="text/javascript">
<!--
function Button01Click(obj)
{
    var tako;
    tako = obj.selectname1.options[obj.selectname1.selectedIndex].value;
    obj.text1.value = tako;
}

function Button02Click(obj) {

var Val='';
var ValIndex='';

    var tako;
    tako = obj.selectname1.options[obj.selectname1.selectedIndex].value;


for(i=0;i<obj.selectname1.length;i++){
Val=obj.selectname1.options[i].value;
if(Val==obj.text1.value){
ValIndex=obj.selectname1.options[i].index;
obj.selectname2.options[i].selected;
break;
}
}
obj.text2.value=Val;
obj.text3.value=ValIndex;
}

//-->
</script>
</head>
<body>
<form method="get" action="" name="formname" id="formname">
<P>
プルダウン1
<select name="selectname1" id="selectname1">
<option value="バリュウ1です" selected>バリュウ1です
<option value="バリュウ2です">バリュウ2です
<option value="バリュウ3です">バリュウ3です
<option value="バリュウ4です">バリュウ4です
<option value="バリュウ5です">バリュウ5です
</select>
テキスト1
<input name="text1"  id="text1">
<input type="button" name="button1" id="button1" value="ボタン1" onclick="Button01Click(formname);">
</P>

<P>
プルダウン2
<select name="selectname2" id="selectname2">
<option value="バリュウ1です" selected>バリュウ1です
<option value="バリュウ2です">バリュウ2です
<option value="バリュウ3です">バリュウ3です
<option value="バリュウ4です">バリュウ4です
<option value="バリュウ5です">バリュウ5です
</select>
テキスト2
<input name="tex2"  id="text2">
テキスト3
<input name="text3"  id="text3">
<input type="button" name="button2" id="button2" value="ボタン2" onclick="Button02Click(formname);">
</P>

</form>
</body>
</html>
------------------------------------------------------

1.プルダウン1を適当に選ぶ。
2.ボタン1を押す

アクション
テキスト1にプルダウン1の選ばれているvalueが入る。

4.ボタン2を押す

アクション
テキスト1に入ってるvalueを取り出してプルダウン2の全項目と照合し、合致したら自動的にプルダウン2の選択を合致したデータの位置にする。
(デバック用にテキスト2には合致valueテキスト3には合致Indexを入れています。)

つまり、最終的にプルダウン1をプルダウン2が全く同じところが選択されているようにしたいのです。

とりあえずボタン2を押してデータの照合まではうまく行ったのですが、どうしてもプルダウン2の選択が出来ません。

申し訳ないのですが、御教授頂けないでしょうか?

たこすけ 2000/02/26(土) 14:44:41
> obj.selectname2.options[i].selected;
obj.selectname2.selectedIndex = i;

> <input name="tex2"  id="text2">
<input name="text2" id="text2">

玉露 2000/02/26(土) 14:53:44
たこすけ さん有り難うございました!!

無事できました!!

ほんっとにほんっとに有り難うございました。感謝です!!

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