Пожалуйста, предложите хорошее решение - PullRequest
0 голосов
/ 31 июля 2010

В моем проекте я хочу реализовать код, в котором мне нужно сохранить два списка (элемент управления asp), и я хочу реализовать функцию add, like, как между этими двумя списками, которые должны быть добавлены для удаления одного элемента из спискак другому, и удаление из другого должно быть добавлено к первому.

Как я могу использовать JavaScript для достижения этого эффекта?Любые ссылки на учебники также будут полезны.Заранее спасибо.

Ответы [ 3 ]

2 голосов
/ 31 июля 2010

Вы можете использовать предоставленный здесь исходный код, который скопирован с 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 голосов
/ 31 июля 2010

Если у вас есть такой 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 и перемещать их в список 2 при нажатии кнопки moveLink.

$(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 голос
/ 31 июля 2010
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...