2 votes

Je n'obtiens pas la valeur des champs sélectionnés

Voici ma page html. Je n'arrive pas à obtenir la valeur de la balise select. Cela fonctionnait jusqu'à ce que je n'aie pas ajouté la balise select. Mais maintenant ça ne fonctionne plus.

<form id="multi">  
    <div>
        <label>Tag</label>
        <select name="" class="tag">
            <option value="1">India</option>
            <option value="2">Australia</option>
        </select>
        <input class="tag" type="text" name="" value="text" />
        <a href="#" data-action="add">add</a>
        <a href="#" data-action="delete">delete</a>
    </div>
    <input type="submit" value="save" >
</form>

et la fonction jquery est

jQuery(function($) {
    var multiTags = $("#multi");
    function handler(e) 
        var jqEl = $(e.currentTarget);
        var tag = jqEl.parent();
        switch (jqEl.attr("data-action")) {
        case "add":
            tag.after(tag.clone().find("input","select").val("").end());
            break;
        case "delete":
            tag.remove();
            break;
        }
        return false;
    }

    function save(e) {
        var tags = multiTags.find("input.tag","select.tag").map(function() {
            return $(this).val();
        }).get().join(',');
        alert(tags);
        return false;
    }

    multiTags.submit(save).find("a").live("click", handler);
});

1voto

S.M.Amin Points 509

find ne prend pas deux arguments. use find('input.tag, select.tag') à la place. find('.tag') suffit aussi.

0voto

vyx.ca Points 3510

find ne fonctionne pas avec les sélecteurs multiples.

utilisez simplement

.find(".tag") 

Voici un violon simplifié

-1voto

Ayman Safadi Points 8354

Vous n'obtenez pas les valeurs de votre select car il lui manque un élément name attribut.

Évidemment.

<select name="I-HAVE-A-NAME-THEREFORE-I-EXIST" class="tag"></select>

Cela n'a rien à voir avec JavaScript ou jQuery.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X