こんばんは。
オプションタグの値取得の方法について質問があります。
opitonタグのvalue属性の値を取得する際、今までは方法Aのコードを用いていましたが、
最近調べものをしていますと、方法Bのコードで取得するのが正しいと知りました。
方法Aでの値の取得についてはGoogle等で検索しましたが、見当たりませんでしたので、
私の思い込みで記述していたのではないかと思われます。
しかしながら、方法Aであっても方法Bであっても取得する値に差異は見られませんでした。
なぜ方法Aでも動作するのでしょうか?
以上、よろしくお願いいたします。
OS :WinXP SP2
ブラウザ:IE6.0
//------------------------------------------------------------------------
// index.htm
//------------------------------------------------------------------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Script-Type" content="text/javascript" />
<script language="javascript" src="./main.js"></script>
</head>
<body>
<form name="chara">
<select name="job">
<option value="j01">0</option>
<option value="j02">1</option>
<option value="j03">2</option>
<option value="j04">3</option>
<option value="j05">4</option>
</select>
<input type="button" value="func()" onclick="func()" />
</form>
</body>
</html>
//------------------------------------------------------------------------
// main.js
//------------------------------------------------------------------------
function func()
{
var Job1 = document.chara.job.value; // 方法A
var Job2Index = document.chara.job.selectedIndex;
var Job2 = document.chara.job.options[Job2Index].value; // 方法B
alert( "Job1: " + Job1 );
alert( "Job2: " + Job2 );
}
No.2ベストアンサー
- 回答日時:
>古いブラウザなどを考慮しますと、やはり方法Bが望ましいのでしょうか。
どうなんでしょうね?
私も昔は方法Bを使っていましたが、最近は方法Aにするようにしています。
基本的には古いブラウザっていっても「ものすごく古いブラウザ」なので
たぶん方法Aでいいとおもますよ。
できれば情報提供側としては、いくつかのブラウザでチェックしておくのが
望ましいかと思います。
No.1
- 回答日時:
古いタイプのjavascriptでは方法Bでしか動作しませんでしたので
「正しい」といえば方法Bなのですが、いまはブラウザが方法Aを
解釈するのが当たり前になってきているので、両方動きます。
方法論から言えば、見たとおり「jobの値を取得する」か
「jobの選ばれた番号とその番号に紐づいたoptionの値を取得する」か
なので、手段が違いますが、得られる値は同じです。
別件ですが、最近はformに名前をつけてはいけないことになっているので
こんな風に、オブジェクト渡しをするか、idをふって管理します。
<script language="javascript">
function func(f){
var Job1 = f.job.value;//方法A
var Job2 = f.job.options[f.job.selectedIndex].value;//方法B
alert( "Job1: " + Job1 );
alert( "Job2: " + Job2 );
}
</script>
<form>
<select name="job">
<option value="j01">0</option>
<option value="j02">1</option>
<option value="j03">2</option>
<option value="j04">3</option>
<option value="j05">4</option>
</select>
<input type="button" value="func()" onclick="func(this.form)" />
</form>
早速のご回答ありがとうございます。
方法Aについてブラウザが解釈してくれるとのことで正直驚いています。
これについて詳細なページがありましたら教えていただけませんでしょうか?
方法Aは記述方法としてスマートな感じがしており、ぜひ使いたいのですが、
古いブラウザなどを考慮しますと、やはり方法Bが望ましいのでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript switch文のswitch(n)の部分を複数の値にするか、if文に変えてほしいです。 1 2022/07/27 17:18
- JavaScript 以前の質問だと、どの条件でも配列が表示されてしまいます。 1 2022/07/09 11:40
- JavaScript セレクトボックスを2つ設けて選択して初めてメッセを表示 1 2022/07/27 12:15
- JavaScript セレクトボックスで配列を呼び出したい。 1 2022/07/08 20:14
- JavaScript セレクトボックスを2つ選択してメッセージなどを表示するには。~運賃検索プログラムを完成させたい~ 1 2022/07/22 11:10
- JavaScript sessionStorageを調べています。 1 2023/06/20 12:41
- JavaScript console.logがどうしても2つ機能しないのでアドバイスをくださいお願いします 2 2022/07/07 22:13
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- JavaScript コードレビューをお願いします。 1 2022/07/16 05:38
- JavaScript セレクトを全て選択されていないと、文字によるエラーメッセージを表示させるコードを調べています 2 2023/06/22 15:48
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
selectを変更不可にしたい
-
プルダウン選択を変更すると、...
-
javascriptでセレクトボックス...
-
javascriptでoptionタグを削除...
-
スマホのフォームでのselect複...
-
SELECTタグで変更禁止にする方法
-
プルダウンメニューに連動する...
-
selectのすべての値を送信する方法
-
hiddenに値を設定する方法
-
全てのselect要素をデフォルト...
-
Selectボックスの一覧表示方法
-
プルダウンを選択していないと...
-
select要素のvalueを配列で取得...
-
webページの一部のみの更新につ...
-
「年」「月」二つのドロップダ...
-
javascriptで計算フォームを作...
-
変数にフォーム名を指定したい
-
同じ名前のセレクトがある場合...
-
selectボックスで選択数を制限...
-
jqueryでselect要素を表示・非...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
全てのselect要素をデフォルト...
-
javascriptでセレクトボックス...
-
Selectボックスの一覧表示方法
-
JavaScriptで<select>の<option...
-
プルダウン選択を変更すると、...
-
select要素のvalueを配列で取得...
-
selectを変更不可にしたい
-
<input>の選択肢をプルダウンメ...
-
ラジオボタンとプルダウンを連...
-
【JS】selectでchangeした時の...
-
VBScriptでHTMLのセレクトボッ...
-
リストボックス内の重複したも...
-
同じ名前のセレクトがある場合...
-
プルダウンの値によって活性・...
-
selectが変更されたらnameを指...
-
【javascript】連想配列からセ...
-
3つのselectでURLパラメータを...
-
複数のプルダウンを1つにまとめ...
-
selectボックスで選択数を制限...
-
セレクトボックスで配列を呼び...
おすすめ情報