Obtenez tous les éléments Sélectionnez dans un formulaire en faisant référence $ (ce) au lieu de $ ( « formulaire select »)

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

Question

Je suis en train d'obtenir tous les éléments Sélectionnez qui existent sous une forme qui suit:

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

    // do submit
    $.post($(this).attr("action"), data, ..etc)
});

Au lieu de passer à $("form select"), est-il un moyen que je peux dire quelque chose comme

$(this).children('select') // this doesn't work, btw

pour obtenir tous les éléments choisis qui existent dans le cadre de la forme de l'événement est en cours d'exécution pour soumettre?

Cela me permettra de réduire mon code à la suivante, déplacer toutes les fonctionnalités dans une fonction commune:

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

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

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

Merci

Dave

Était-ce utile?

La solution

Utilisez .Find ()

Essayez

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

Les méthodes .Find () et .children ()   sont similaires, sauf que ce dernier   ne se déplace un seul niveau bas de la   arbre DOM.

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

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

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

Autres conseils

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

    // ...
});

Indiquez toujours le deuxième argument lorsque cela est possible, ce paramètre définit le contexte / champ dans lequel le sélecteur sera en fait la recherche.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top