選択肢変更イベントでは、選択値を得るために$("select option:selected")
のような不器用なコードを書くのではなく、選択した値を得るためにthis.target.targetを取得できないのはなぜですか?なぜオプションの変更イベントを選択すると、thisとevent.targetを選択した値を取得できないのですか?
1
A
答えて
2
$("select").on('change', function(){
console.log($(this).val());
console.log($(this).find('option:selected').attr('data-attribute'));
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<select>
<option data-attribute="a">1</option>
<option data-attribute="b">2</option>
<option data-attribute="c">3</option>
<option data-attribute="d">4</option>
</select>
0
それが存在している...
var selectElem = document.getElementById('select');
selectElem.addEventListener('change', onSelect_change);
function onSelect_change(domEvent){
\t // get the selected value :
\t var selectedValue = domEvent.target[domEvent.target.selectedIndex].value;
// you can also do it using domEvent.target.value but the other solution allows you to get every option's property you want
\t
\t console.log("Selected: " + selectedValue);
}
<select id="select" name="select">
<option value="value1">Value 1</option>
<option value="value2" selected>Value 2</option>
<option value="value3">Value 3</option>
</select>
はそれが役に立てば幸い例えば、このコードを見てみましょう;)
PS:あなたがもっと欲しい場合はhttp://www.w3schools.com/jsref/prop_select_selectedindex.aspの表情を持っています例
1
選択した値は取得できませんが、もちろん要素とevent.taを取得できますrget。
<select onchange="mySelectOnchange(this, event)"></select>
function mySelectOnchange(elm, e) {
// **
}
1
そのドロップダウンメニューからオプションを選択する主な目的だから自動的<select>
素子自体に選択されたオプションから転送された唯一のプロパティは、値であります。 <select>
が独自の属性を持つことが可能であるため、data-*
などの他の属性は自動的にコピーされません。
<select id="x" data-name="select">
<option value="1" data-name="option1">1</option>
<option value="2" data-name="option2">2</option>
</select>
$("#x").data("name")
ではなく<select>
の名前の選択したオプションの名前を返すことは意味がありません。
関連する問題
- 1. selecteオプションの変更イベントでthisおよびevent.targetを選択した値を取得できないのはなぜですか?
- 2. JS:プロンプトで選択すると、選択オプションの値を変更しますか?
- 3. 角でオプションを変更するときにIEの選択ボックスで選択
- 4. 反応選択でオプションを選択したときに入力値が変更されない
- 5. 選択ボックスで選択したオプションの値を取得する方法
- 6. ユニットテスト選択メニュー変更イベント(更新された値を取得しない)
- 7. 選択したフォームの変更でタブを選択しない
- 8. 複数のオプションを選択できる場合、Select2イベントで選択されたオプションを取得
- 9. angular2の選択変更イベントの値を取得する方法
- 10. 選択オプションを変更すると、選択
- 11. DropDownList新しい値を選択したときに選択した値を変更しない
- 12. JQuery選択したオプションの属性を持つ選択オプションと選択した値を持たない選択の違いについて
- 13. 値の変更、オプションを選択し
- 14. 選択ボックスの値を別の選択ボックスで変更したときにライブで変更する
- 15. 変更選択オプションと、現在の値を取得します - Angular2
- 16. ReactJS選択したオプションコントロールで選択したオプションの色を変更します
- 17. onmouseoverでオプションを選択/オプションを選択するとタグイベントを選択
- 18. Javascriptは、選択オプションを選択したときの入力値を変更します。
- 19. 選択オプションの前の値を取得
- 20. オプションのリロードを選択し、他の選択ボックスの値を変更します
- 21. JQuery - 変更イベントで選択オプションが追加されない
- 22. 実行時に選択ボックス内のオプションを変更して別の選択ボックスでオプションを選択する
- 23. 選択タグからオプションを選択したときにコンポーネント変数が更新されない
- 24. 選択した別の選択オプションに基づいて選択オプションを変更する方法は?
- 25. JQuery - 別の選択が変更されたときにselectの選択されたオプションを変更する
- 26. 選択できないオプションのデータ属性HTMLから選択
- 27. 選択オプションで選択色を変更する方法は?
- 28. Angular2:選択コンポーネントで選択されたオプションを取得
- 29. Jqueryで選択した "選択ボックス"の値を取得
- 30. 選択オプションを選択した後にこの機能が起動しないのはなぜですか?
'this.value'または' event.target.value'が機能するはずです。 – Barmar
うまく動作します:https://jsfiddle.net/barmar/a6gkggwx/1/ – Barmar
'change'イベントを' option'ではなく 'select'にバインドしてください。 – Barmar