Jquery可排序列表不会序列化,为什么?

时间:2009-06-08 14:07:54

标签: php jquery jquery-ui-sortable serialization

我在Zend Framework应用程序中使用jquery实现了一个可排序的图像列表。 我只是不能让.sortable('serialize')方法返回多个空字符串。

当我在我的应用程序之外尝试一些简单的例子时,它可以工作。

下面的代码段包装在各种其他标签和其他标签中是否重要?我认为不应该。无序列表应该只能通过id找到,对吗?

HTML:

<ul id="mylist">
    <li id="1">
        <div>
            <img src="image_1.jpg" />
            <p class="value_item">some text</p>
        </div>
    </li>
    <li id="2">
        <div>
            <img src="image_2.jpg" />
            <p class="value_item">some text</p>
        </div>
    </li>
</ul>

JavaScript的:

$(document).ready(function() {                 
    $('#mylist').sortable({ 
        update: function() {
            var order = $('#mylist').sortable('serialize');
            alert(order);
        }                         
    });
});

3 个答案:

答案 0 :(得分:97)

http://api.jqueryui.com/sortable/#method-serialize

如果serialize返回一个空字符串,确保id属性包含下划线。它们必须采用以下形式:“set_number”例如,具有id属性 foo_1,foo_5,foo_2 的3元素列表将序列化为foo [] = 1&amp; foo [] = 5&amp; foo [] = 2。您可以使用下划线,等号或连字符来分隔集合和数字。例如foo = 1或foo-1或foo_1都序列化为foo [] = 1.

答案 1 :(得分:8)

当您使用不合规的ID时,Jquery会遇到问题。

不允许Ids以数字开头。他们可以在其中包含数字,而不是第一个字符。

答案 2 :(得分:1)

(链接更新) 嗨,我几天前偶然发现了一个类似的问题,尽管在我的情况下保持元素的顺序是完整的很重要。我编写了一个小插件,允许您序列化任意深度和复杂度的ul和ol列表:

serializeTree

相关问题