Javascript jquerysortable删除其他元素

Javascript jquerysortable删除其他元素,javascript,jquery,jquery-ui,Javascript,Jquery,Jquery Ui,我尝试在我们的项目上实现jquery sortable,如果完成排序,则项目上应该有一个重新索引。请参考下面的代码: $("#data_field_table tbody").sortable({ stop:updateRow }).disableSelection(); var updateRow = function(e,ui){ $('td.index',ui.item.parent()).each(function(i)

我尝试在我们的项目上实现jquery sortable,如果完成排序,则项目上应该有一个重新索引。请参考下面的代码:

 $("#data_field_table tbody").sortable({
            stop:updateRow
        }).disableSelection();

    var updateRow = function(e,ui){
        $('td.index',ui.item.parent()).each(function(i){
            var newIndex = i +1;
            $(this).html(newIndex);
        });
项目的重新索引是可以的,但是在处理之后,排序行上的隐藏输入被删除了。我不确定这是否是由jquery的可排序性引起的。请参考下面的代码:

<td class="index">${data.groupOrder}<input class="hiddenValue" type="hidden" name="fgDataFields[${info.index}].groupOrder" id="go${info.index}" value="${data.groupOrder}"/>
                    </td>
${data.groupOrder}

在updateRow函数的末尾缺少一个
}

尝试:

编辑:

重读你的问题,意识到这不是问题所在。我现在明白了,重新编制索引是可行的,但隐藏的输入被删除了

要解决这个问题,您必须保存输入,并在重新编制索引后向项目重新添加id

大概是这样的:

var updateRow = function(e,ui){
$('td.index',ui.item.parent()).each(function(i){
    var newIndex = i +1;

    var input = $(this).find('input');

    $(this).html(newIndex);
    $(this).append(input)
})};
var updateRow = function(e,ui){
$('td.index',ui.item.parent()).each(function(i){
    var newIndex = i +1;

    var input = $(this).find('input');

    $(this).html(newIndex);
    $(this).append(input)
})};