2

这是我的html页面。我没有得到选择标签的价值。它一直在工作,直到我没有添加选择标签。但现在它不起作用。

<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>

jquery函数是

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);
});
4

3 回答 3

1

find不接受两个参数。改为使用find('input.tag, select.tag')find('.tag')也足够了。

于 2013-02-15T06:18:17.150 回答
0

find不适用于多个选择器。

只需使用

.find(".tag") 

这是一个简化的小提琴

于 2013-02-15T06:18:44.070 回答
-1

您没有获得select元素的值,因为它缺少一个name属性。

明显地。

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

这与 JavaScript 或 jQuery 无关。

于 2013-02-15T06:08:59.687 回答