可分类的Textarea

时间:2010-12-31 06:24:33

标签: jquery-ui jquery jquery-ui-sortable

我已经制作了一个可排序列表。

根据可排序列表的顺序,我想将文本插入textarea #notes。 无论如何我可以根据列表排序文本,所以即使我改变顺序。 textarea中的文本应相应更改

例如

<ul>
<li>entry 1</li>
<li>entry 2</li>
</ul>


entry 1 = "this is line 1"
entry 2 = "this is line 2"

我不确定是否必须使用Ajax或其他东西才能完成此操作。因为我希望每个列表项都有预定义的文本。

我正在努力学习Jquery,并且真的应该给予任何帮助。 关于如何完成这一任务的任何提示。

问题

我在哪里以及如何存储这些预定义的值? 如何对文本区域中的文本进行排序?

有人可以指出我正确的方向吗

2 个答案:

答案 0 :(得分:0)

textarea只是一团文字。你必须有一些方法来确定那里构成“可排序”线的内容。或者在列表更改时重新生成整个内容。

答案 1 :(得分:0)

也许写一个javascript函数给refreshTextarea(),你最初会用它来填充textarea,每次排序改变时,它会根据列表的排序顺序“清空”并重新填充它。

好的,要将值与您的列表项相关联,请为您的ul提供id和您的li唯一ID

<ul id="the-list">
    <li id="item-1">entry 1</li>
    ...
</ul>

然后对于每个列表项,创建一个隐藏的输入,其id以某种方式对应

<input type="hidden" id="item-1-data" value="this is where you put info for the list item entry 1" />

然后使用jquery,通过循环遍历列表项并在进行任何排序后刷新textarea,以编程方式关联它们。

$('#the-list li').each(function() {
    //get the id of the list's data field
    var li-data-id = $(this).attr("id") + '-data';

    // get the actual data associated with this list item
    var li-data = $(li-data-id).val();

    // append next list's data in the textarea
    $('#id-of-textarea').val($('#id-of-textarea').val() + "\n" + li-data)
}