避免在JSP页面中排序

时间:2014-02-11 07:37:56

标签: javascript jsp

var sortitems = 1;

function move(fbox, tbox, all)
{
    for ( var i = 0; i < fbox.options.length; i++)
    {
        if (!all && fbox.options[i].selected && fbox.options[i].value != "")
        {
            var no = new Option();
            no.value = fbox.options[i].value;
            no.text = fbox.options[i].text;
            tbox.options[tbox.options.length] = no;
            fbox.options[i].value = "";
            fbox.options[i].text = "";
        }
        else
        {
            if (all && fbox.options[i].value != "")
            {
                var no = new Option();
                no.value = fbox.options[i].value;
                no.text = fbox.options[i].text;
                tbox.options[tbox.options.length] = no;
                fbox.options[i].value = "";
                fbox.options[i].text = "";
            }
        }
    }
    BumpUp(fbox);

    if (sortitems)
 SortD(tbox);
    checkSelectAll();
}

点击按钮后调用此移动函数,然后它将调用排序方法,按字母顺序排序。所以我们不需要排序我们需要填充数据,因为它是从左侧框到右侧框,反之亦然,但排序正在发生。请帮帮忙。

function SortD(box)
    {
        var temp_opts = new Array();
        var temp = new Object();
        for ( var i = 0; i < box.options.length; i++)
        {
            temp_opts[i] = box.options[i];
        }
        for ( var x = 0; x < temp_opts.length - 1; x++)
        {
            for ( var y = (x + 1); y < temp_opts.length; y++)
            {
                if (temp_opts[x].value > temp_opts[y].value)
                {
                    temp = temp_opts[x].text;
                    temp_opts[x].text = temp_opts[y].text;
                    temp_opts[y].text = temp;
                    temp = temp_opts[x].value;
                    temp_opts[x].value = temp_opts[y].value;
                    temp_opts[y].value = temp;
                }
            }
        }
        for ( var i = 0; i < box.options.length; i++)
        {
            box.options[i].value = temp_opts[i].value;
            box.options[i].text = temp_opts[i].text;
        }
    }

取决于缓冲盒功能。元素从一个盒子移动到另一个盒子。它将用空格替换元素并移动到顶部并对所有元素执行操作。请帮帮我

提前致谢

function BumpUp(box)
    {
        for ( var i = 0; i < box.options.length; i++)
        {
            if (box.options[i].value == "")
            {
                for ( var j = i; j < box.options.length - 1; j++)
                {
                    box.options[j].value = box.options[j + 1].value;
                    box.options[j].text = box.options[j + 1].text;
                }
                var ln = i;
                break;
            }
        }
        if (ln < box.options.length)
        {
            box.options.length -= 1;
            BumpUp(box);
        }
    }

1 个答案:

答案 0 :(得分:0)

也许这只是我,但很难看出这里的问题是什么。

如果只是在 move()函数中调用 SortD(tbox),那是因为 sortitems 在代码顶部设置为1。 sortitems 的值永远不会在其他地方更改,因此此条件始终为true,并始终调用 SortD

if (sortitems)
 SortD(tbox);