JavaScriptを使用してドロップダウンリストで選択した値を取得する

2009年07月06日に質問されました。  ·  閲覧回数 4.3M回  ·  ソース

Fire Hand picture
2009年07月06日

JavaScriptを使用してドロップダウンリストから選択した値を取得するにはどうすればよいですか?

以下のメソッドを試しましたが、すべて値ではなく、選択したインデックスを返します。

回答

Paolo Bergantino picture
2009年07月06日
3098

次のようなselect要素がある場合:

<select id="ddlViewBy">
  <option value="1">test1</option>
  <option value="2" selected="selected">test2</option>
  <option value="3">test3</option>
</select>

このコードの実行:

var e = document.getElementById("ddlViewBy");
var strUser = e.value;

strUser2ます。 実際に必要なものがtest2場合は、次のようにします。

var e = document.getElementById("ddlViewBy");
var strUser = e.options[e.selectedIndex].text;

これにより、 strUsertest2

Vitalii Fedorenko picture
2011年12月18日
391

プレーンJavaScript:

var e = document.getElementById("elementId");
var value = e.options[e.selectedIndex].value;
var text = e.options[e.selectedIndex].text;

jQuery:

$("#elementId :selected").text(); // The text content of the selected option
$("#elementId :selected").val(); // The value of the selected option

AngularJS :( http://jsfiddle.net/qk5wwyct ):

// HTML
<select ng-model="selectItem" ng-options="item as item.text for item in items">
</select>
<p>Text: {{selectItem.text}}</p>
<p>Value: {{selectItem.value}}</p>

// JavaScript
$scope.items = [{
  value: 'item_1_id',
  text: 'Item 1'
}, {
  value: 'item_2_id',
  text: 'Item 2'
}];
Greg picture
2009年07月06日
176
var strUser = e.options[e.selectedIndex].value;

これは正しく、あなたに価値を与えるはずです。 それはあなたが求めているテキストですか?

var strUser = e.options[e.selectedIndex].text;

したがって、用語は明確です。

<select>
    <option value="hello">Hello World</option>
</select>

このオプションには次のものがあります。

  • インデックス= 0
  • 値=こんにちは
  • テキスト= Hello World
Code Spy picture
2012年12月03日
62

次のコードは、JavaScriptを使用した入力/選択フィールドからの値の取得/入力に関連するさまざまな例を示しています。

ソースリンク

動作するJavascriptとjQueryのデモ

enter image description here

enter image description here

 <select id="Ultra" onchange="run()">  <!--Call run() function-->
     <option value="0">Select</option>
     <option value="8">text1</option>
     <option value="5">text2</option>
     <option value="4">text3</option>
</select><br><br>
TextBox1<br>
<input type="text" id="srt" placeholder="get value on option select"><br>
TextBox2<br>
<input type="text" id="rtt"  placeholder="Write Something !" onkeyup="up()">

次のスクリプトは、選択したオプションの値を取得して、テキストボックス1に入力しています。

<script>
    function run() {
        document.getElementById("srt").value = document.getElementById("Ultra").value;
    }
</script>

次のスクリプトは、テキストボックス2から値を取得し、その値でアラートを出します。

<script>
    function up() {
        //if (document.getElementById("srt").value != "") {
            var dop = document.getElementById("srt").value;
        //}
        alert(dop);
    }
</script>

次のスクリプトは、関数から関数を呼び出しています

<script>
    function up() {
        var dop = document.getElementById("srt").value;
        pop(dop); // Calling function pop
    }

    function pop(val) {
        alert(val);
    }?
</script>
Mohammad Faisal picture
2013年10月25日
45
var selectedValue = document.getElementById("ddlViewBy").value;
Carl Onager picture
2012年06月18日
22

Internet Explorer専用に記述されたコードに出くわしたことがある場合は、次のように表示される可能性があります。

var e = document.getElementById("ddlViewBy");
var strUser = e.options(e.selectedIndex).value;

上記をFirefoxなどで実行すると、「関数ではありません」というエラーが発生します。これは、Internet Explorerでは[]の代わりに()を使用する必要がないためです。

var e = document.getElementById("ddlViewBy");
var strUser = e.options[e.selectedIndex].value;

正しい方法は、角括弧を使用することです。

boateng picture
2015年04月14日
19
<select id="Ultra" onchange="alert(this.value)"> 
 <option value="0">Select</option>
 <option value="8">text1</option>
 <option value="5">text2</option>
 <option value="4">text3</option>
</select>

要素内からアクセスする場合、どの入力/フォームフィールドでも「this」キーワードを使用できます。 これにより、DOMツリーでフォームを検索し、フォーム内でこの要素を検索する必要がなくなります。

Dulith De Costa picture
2018年07月23日
16

JavaScriptまたはjQueryを使用してこれを行うには2つの方法があります。

JavaScript:

var getValue = document.getElementById('ddlViewBy').selectedOptions[0].value;

alert (getValue); // This will output the value selected.

または

var ddlViewBy = document.getElementById('ddlViewBy');

var value = ddlViewBy.options[ddlViewBy.selectedIndex].value;

var text = ddlViewBy.options[ddlViewBy.selectedIndex].text;

alert (value); // This will output the value selected

alert (text); // This will output the text of the value selected

jQuery:

$("#ddlViewBy:selected").text(); // Text of the selected value

$("#ddlViewBy").val(); // Outputs the value of the ID in 'ddlViewBy'
Ben Greenaway picture
2011年03月09日
14

初心者は、ID属性ではなくNAME属性を使用してselectから値にアクセスしたいと思う可能性があります。 IDを取得する前であっても、すべてのフォーム要素に名前が必要であることはわかっています。

そこで、新しい開発者にも見てもらうために、 getElementByName()ソリューションを追加します。

注意。 フォーム要素の名前は、投稿後にフォームを使用できるように一意である必要がありますが、DOMでは複数の要素で名前を共有できます。 そのため、可能であればフォームにIDを追加するか、フォーム要素名my_nth_select_named_xおよびmy_nth_text_input_named_y明示することを検討してください。

getElementByNameを使用した例:

var e = document.getElementByName("my_select_with_name_ddlViewBy");
var strUser = e.options[e.selectedIndex].value;
Marvil Joy picture
2014年02月18日
12

使用するだけ

  • リストされたテキストを取得するための$('#SelectBoxId option:selected').text();

  • 選択したインデックス値を取得するための$('#SelectBoxId').val();