请建议一个好的解决方案

时间:2010-07-31 18:17:57

标签: javascript select options

在我的项目中,我想实现代码,我需要保留两个列表框(asp控件),我想在这两个列表框之间实现添加删除功能,从列表框中删除一个项目应添加应该首先添加另一个并从另一个中删除。

如何使用JavaScript来实现此效果?任何教程链接也会有所帮助。 提前谢谢。

3 个答案:

答案 0 :(得分:2)

如果你有这样的HTML:

<select id="listBox1" size="5">
<option value="1">Item 1</option>
<option value="2">Item 2</option>
<option value="3">Item 3</option>
</select>

<select id="listBox2" size="5">
<option value="4">Item 4</option>
<option value="5">Item 5</option>
<option value="6">Item 6</option>
</select>

<a href="#" id="moveLink">Move selected from list 1 to list 2</a>

然后,以下jquery将从列表1中选择所选项目,并在单击moveLink时将它们移动到列表2。

$(function() {
    $('#moveLink').click(function() {
        $('#listBox1 option:selected').each(function(i, opt) {
            $('#listBox2').append($('<option></option>').attr('value', opt.val()).text(opt.text());

            $(opt).remove();
        });
    });
});

访问www.jquery.com,让图书馆也包含在页面中,以便工作。

答案 1 :(得分:2)

您可以使用我在此提供的源代码,该代码是从http://www.johnwbartlett.com/CF_tipsNtricks/index.cfm?TopicID=86

复制的
<html>
<head>
<title>Multi-list copy example</title>
<body>
<script language="Javascript">
function SelectMoveRows(SS1,SS2)
{
    var SelID='';
    var SelText='';
    // Move rows from SS1 to SS2 from bottom to top
    for (i=SS1.options.length - 1; i>=0; i--)
    {
        if (SS1.options[i].selected == true)
        {
            SelID=SS1.options[i].value;
            SelText=SS1.options[i].text;
            var newRow = new Option(SelText,SelID);
            SS2.options[SS2.length]=newRow;
            SS1.options[i]=null;
        }
    }
    SelectSort(SS2);
}
function SelectSort(SelList)
{
    var ID='';
    var Text='';
    for (x=0; x < SelList.length - 1; x++)
    {
        for (y=x + 1; y < SelList.length; y++)
        {
            if (SelList[x].text > SelList[y].text)
            {
                // Swap rows
                ID=SelList[x].value;
                Text=SelList[x].text;
                SelList[x].value=SelList[y].value;
                SelList[x].text=SelList[y].text;
                SelList[y].value=ID;
                SelList[y].text=Text;
            }
        }
    }
}
</script>
<form name="Example">
<table border="0" cellpadding="3" cellspacing="0">
    <tr>
        <td>
            <select name="Features" size="9" MULTIPLE>
                <option value="2">Row 2</option>
                <option value="4">Row 4</option>
                <option value="5">Row 5</option>
                <option value="6">Row 6</option>
                <option value="7">Row 7</option>
                <option value="8">Row 8</option>
                <option value="9">Row 9</option>
            </select>
        </td>
        <td align="center" valign="middle">
            <input type="Button" value="Add >>" style="width:100px" onClick="SelectMoveRows(document.Example.Features,document.Example.FeatureCodes)"><br>
            <br>
            <input type="Button" value="<< Remove" style="width:100px" onClick="SelectMoveRows(document.Example.FeatureCodes,document.Example.Features)">
        </td>
        <td>
            <select name="FeatureCodes" size="9" MULTIPLE>
                <option value="1">Row 1</option>
                <option value="3">Row 3</option>
            </select>
        </td>
    </tr>
</table>
</form>

</body>
</html>

答案 2 :(得分:1)