附加一个具有相同选项但名称不同的选择框

时间:2011-04-25 13:28:50

标签: javascript jquery

如何添加具有相同选项和不同名称的选择框。 我有一个循环,我的php读取一个sql表,并为每一行创建一个选项标记

这是要追加的功能:

$(function(){
    $('#add').click(function(){
        var select = $('span[id=combo]').html();
        $('#allCombo').append('<br/><span id="combo">'+select+'</span>');
    });
});

这是选择框:

<span id="allCombo">
                <span id="combo" name="combo">
                    <select name="item">
                        <?php foreach ($items as $item) { ?>
                            <option value="<?php echo $item->item_id; ?>">
                            <?php echo $item->item_name; ?></option>
                        <?php } ?>
                    </select>
                </span>
</span>

任何人都可以帮助我。 谢谢。

4 个答案:

答案 0 :(得分:1)

$(function(){
    $('#add').click(function(){
        var select = $('#combo').html();
        $('<br/><span id="combo">'+select+'</span>').appendTo('#allCombo').find.('select').attr('name', 'uniqueName');
    });
});

答案 1 :(得分:0)

var newSelect = $('select[name=item]').clone().attr('name', 'newselect');
$('#allCombo').append(newSelect);

答案 2 :(得分:0)

您始终可以使用克隆方法:

var new_combo $('span#combo').clone();
new_combo.attr('name', 'second_combo');
new_combo.attr('id', 'second_combo'); // for valid html
$('#allCombo').append(new_combo);

答案 3 :(得分:0)

使用item[]作为名称。 PHP会将其转换为数组,因此所选值存储在$_POST['item']

中的数组中

但更重要的是不重复ID。我建议完全删除内部span,如

  1. 您不能拥有重复的ID和
  2. span代码没有name属性
  3. 因此无需保留此标记。

    <span id="allCombo">
        <select name="item[]">
            <?php foreach ($items as $item): ?>
                <option value="<?php echo $item->item_id; ?>">
                    <?php echo $item->item_name; ?>
                </option>
           <?php endforeach; ?>
         </select>
    </span>
    

    JS代码将是:

    $(function(){
        $('#add').click(function(){
            $('#allCombo')
               .append('<br />')
               .append($('#allCombo select').first().clone());
        });
    });