0

フォームに行オプションを追加して、ユーザーが必要な数の行を追加し、ajax を介して一度に送信できるようにしました。

各行には、選択ボックスと一連のテキストボックスが含まれています。

テキストボックスは正しく送信されますが、値は異なりますが、私のフォームは他のすべての行の最初の行に選択ボックスの値を送信するだけです。

私の問題を正しく(残念ながら)説明したので、選択ボックスのhtmlコードのコードを次に示します。

<td><span id="xyz"><select id="whatever">
<option value="one">ONE</option>
 <option value="two">TWO</option>
<option value="three">THREE</option>
</select>
</span></td>

以下は、jQuery がすべての選択ボックスの値を取得するためのさまざまなコード バージョンのコードです。

$("#table tbody tr").each(function(){

var select = $(this).find("td:eq(0)").find("select#whatever).val();
//etc
}

また

$("#table tbody tr").each(function(){

var select = $("select#whatever).val();
//etc
}

また

$("#table tbody tr").each(function(){

var select = $(this).find("td:eq(0)").find("select#whatever option:selected").val();
//etc
}

また

$("#table tbody tr").each(function(){

var select = $(this).find("td:eq(0)").find("select#whatever").val();
//etc
}

また

$("#table tbody tr").each(function(){

var select = $(this).find("td:eq(0)").find("select").val();
//etc
}

また

$("#table tbody tr").each(function(){

var select = $(this).find("td:eq(0).xyz").find("select#whatever").val();
//etc
}

また

$("#table tbody tr").each(function(){

var select = $(this).find("td:eq(0).dropdown select#whatever").val();
//etc
}


$("#table tbody tr").each(function(){

var select = $(this).find("td:eq(0)").find("select#whatever").val();
//etc
}

また

$("#table tbody tr").each(function(){

var select = $("select#whatever option:selected").val();
//etc
}

また

$("#table tbody tr").each(function(){

var select = $("select option:selected").val();
//etc
}

何よりも、私の記憶が正しければ、コードのさまざまなバージョンがあります。IE 8 ですでに試してみましたが、あまり成功していません。

IE 9 や firefox などの他のブラウザでは問題なく動作します。

他の入力ボックスの値を取得できるため、ループは正常に機能しています。

id 属性なしで html select boxe も試しましたが、どちらも機能しませんでした。

私は本当にここで誰かの助けが必要です.

事前に天才に感謝します。

マーク。

4

2 に答える 2

2

私はあなたがこれを探していると思います:

var selectValue = $(this).find("td:eq(0)").find("select option:selected").val();

于 2012-07-27T18:53:35.427 に答える
1

行ごとに選択ボックスが1つしかないと仮定すると、これは機能するはずです:

var values = $("#table select").map(function(){
    return $(this).val();
}).get();

より複雑なマークアップがあり、各行の最初のセルからのみ値を取得したい場合は、セレクターを次のように変更できます。

$('#table td:first-child select') 
于 2012-07-27T18:56:03.197 に答える