$(this).find('select option:selected').each(function (i, val) {
var selectedValue = $(val).val(); //this returns the text from the option instead of the value
});
これは ie7 の既知の問題ですか? 私はそれについての情報を見つけませんでしたか?考えられる回避策 ありがとう
$(this).find('select option:selected').each(function (i, val) {
var selectedValue = $(val).val(); //this returns the text from the option instead of the value
});
これは ie7 の既知の問題ですか? 私はそれについての情報を見つけませんでしたか?考えられる回避策 ありがとう
http://api.jquery.com/val/のドキュメントによると
.val()
にのみ適用されます
.val()メソッドは、主にinput、select、textareaなどのフォーム要素の値を取得するために使用されます。要素の場合
<select multiple="multiple">
、.val()メソッドは、選択された各オプションを含む配列を返します。オプションが選択されていない場合は、nullを返します。
select
必要なことを実現するには、を繰り返して呼び出すことができ.val()
ます。元のコードは、実際の要素ではなく、効果的に呼び出しval()
ているため、実際には機能しません。option
select
$(this).find('select').each(function (i, val) {
var selectedValue = $(this).val();
});
val()
selectの場合に値の配列を返す機能を持つという追加のボーナスがありmultiple
ます:(私のものを強調してください)
.val()メソッドは、主にinput、select、textareaなどのフォーム要素の値を取得するために使用されます。要素の場合
<select multiple="multiple">
、.val()メソッドは、選択された各オプションを含む配列を返します。オプションが選択されていない場合は、nullを返します。
要素自体ではなくオプションの値を要求するため、これは予期される動作です。
物事を過度に複雑にしないでください。
$(this).find('select').each(function() {
var val = $(this).val();
});
試す
シングルセレクト用
var selectedValue = $(this).val();
選択した値を取得するには、上記の行に書き込む必要があります。
マルチセレクトの場合は
var result = "";
$('#idselect option:selected').each(function(i, item)
{
result += $(this).val() + ", ";
});