我正在使用 jQueryUI 创建一个可排序列表,并且 UI 部分工作得很好,因为我可以根据需要在网页上对项目进行排序。但我不知道排序列表的顺序是如何包含在 POST 中的。我对 javascript 完全是菜鸟,所以如果这真的很简单,请原谅我。
以下是我的 html 的相关部分:
<script type="text/javascript">
google.load("jquery", "1");
google.load("jqueryui", "1");
function OnLoad(){
$( "#sortable" ).sortable({ axis: "y", containment: "#ballot", scroll: false });
$( "#sortable" ).disableSelection();
}
google.setOnLoadCallback(OnLoad);
</script>
[...]
<form method="POST" action="/vote">
<input type="hidden" name="key" value="{{ election.key }}">
<input type="hidden" name="uuid" value="{{ uuid }}">
<div id="ballot" class="center">
<ol id="sortable" class="rankings">
<li class="ranking">Jamie</li>
<li class="ranking">Joanie</li>
<li class="ranking">Morley</li>
<li class="ranking">Frank</li>
<li class="ranking">Larry</li>
</ol>
</div>
</form>
如何在 POST 中对 Jamie、Joanie、Morley、Frank 和 Larry 的顺序进行编码?
你可以使用该方法.serialize
在您的可排序对象上:http://docs.jquery.com/UI/Sortable#method-serialize http://docs.jquery.com/UI/Sortable#method-serialize
$( "#sortable" ).sortable('serialize')
会给你一个ajax可提交的项目数组。如果您不使用ajax,只需将其分配给输入框即可。或者如果使用 ajax,只需将其传递到数据数组中
EDIT这里的例子:http://jsfiddle.net/jomanlk/KeAer/2/ http://jsfiddle.net/jomanlk/KeAer/2/
正如 jquery 文档所指出的,要使其工作,您的元素需要具有以下形式的 idset_number
(例如,rank_1、rank_2)。所以我修改了你的 HTML
只需删除return false
在表单中,序列化值将设置到表单提交时的输入框
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)