$(この)の代わりを参照することにより、フォーム内のすべての選択要素を取得します$(「フォームを選択」)

StackOverflow https://stackoverflow.com/questions/2386197

質問

私は現在、次のすべてに形で存在する選択要素取得しています:

$("form").submit(function(event)
{
    // gather data
    var data = GetSelectData($("form select"));

    // do submit
    $.post($(this).attr("action"), data, ..etc)
});
その代わり$("form select")に渡すので、私のような何かを言うことができる方法はあり

$(this).children('select') // this doesn't work, btw
イベントのために実行されている提出フォームのコンテキスト内に存在するすべての選択要素を取得する?

これは、私は一般的な機能にすべての機能を移動し、次のように私のコードを削減することができます:

$("form").submit(function(event)
{
    GatherDataAndSubmit($(this));
});

function GatherDataAndSubmit(obj)
{
    var data = GetSelectData(obj.children('select'));

    $.post(obj.attr("action"), data, ..etc)
}

おかげ

デーブ

役に立ちましたか?

解決

使用 .find()

試してみてください
var data = GetSelectData(obj.find('select'));
  

.find()および.children()メソッド   後者のことを除いて、類似しています   唯一ダウン単一レベルを移動   DOMツリーます。

$("form").submit(function(event)
{
    GatherDataAndSubmit($(this));
});

function GatherDataAndSubmit(obj)
{
    var data = GetSelectData(obj.find('select'));

    $.post(obj.attr("action"), data, ..etc)
}

他のヒント

$("form").submit(function(event) {
    // gather data
    var data = GetSelectData($("select", this));

    // ...
});

可能な場合は常に第二引数を指定し、この指定コンテキスト/セレクタは、実際に検索された範囲。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top