Javascript jquerysortable删除其他元素
我尝试在我们的项目上实现jquery sortable,如果完成排序,则项目上应该有一个重新索引。请参考下面的代码: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)
$("#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)
})};