jQuery选择了动态添加的选择框

时间:2014-02-13 11:19:38

标签: jquery jquery-chosen

您可以通过点击#newchosen div

中的“+”动态添加选择框
<script type="text/javascript">
$("#content").on("click", "#newchosen", function() {
    $("#clone_hidden").clone().appendTo($("#cloneoutput"));
});
</script>

这是克隆并添加到#cloneoutput

的div
<div style="display: none;">
    <div id="clone_hidden">
        <table>
        <tr>
        <td>
            <select name="color" id="color" class="chosen-color" data-placeholder="{$choose_color}">
            <option value=""></option>
            {loop="arr_colors"}
                <option value="{$key}">{$value}</option>
            {/loop}
            </select>
        </td>
        <td>
            <select name="grape" id="grape" class="chosen-grape" data-placeholder="{$choose_grape}">
            <option value=""></option>
            {loop="arr_grapes"}
                <option value="{$key}">{$value}</option>
            {/loop}
            </select>
        </td>
        <td>
            <select name="quality" id="quality" class="chosen-quality" data-placeholder="{$choose_quality}">
            <option value=""></option>
            {loop="arr_quality"}
                <option value="{$key}">{$value}</option>
            {/loop}
            </select>
        </td>
        <td>
            <input type="text" name="quantity" id="quantity" value="" maxlength="10" class="smalltextinput" />
        </td>
        </tr>
        </table>
    </div>
</div>

所以问题是只有颜色,葡萄和质量的第一个选择框才起作用,因为它只是与重复的名称相同。但是,如果我将[]添加到选择框的id和名称选择得到错误,并且根本不再工作。

所以我的问题是,如何选择数组字段?喜欢

选择name = color [] id = color []

感谢您的关注!祝你有个美好的一天。

1 个答案:

答案 0 :(得分:0)

我通过将div clone_hidden id更改为唯一的

来修复此问题
<script type="text/javascript">
var count = 0;
$("#content").on("click", "#newchosen", function() {
    count++;
    $("#clone_hidden").clone().attr('id','clone'+ count +'').appendTo($("#cloneoutput"));
    $("#clone" + count +" select").chosen({disable_search: true, width: "150px"});
});

</script>