我非常确定这是一种Javascript错误,而且在我的id上进行了多次puts()试验之后不会出现Rails错误......
我要做的是使用jQuery的序列化函数序列化一堆li。我想基于一组自定义ID来做...在我的例子中,podli-1,podli-2,podli-3等我尝试通过使用序列化“表达式”选项来做到这一点。
当我尝试使用警报进行调试时(我在下面看到),我从这里得到的是:id = undefined& id = undefined& id = undefined& id = undefined& id = undefined& id = undefined&amp ; id =未定义
- 这实际上是正确数量的li,但由于某种原因,所有id都是未定义的。正如我所说,它都在Rails中工作,但是有一些JS错误。
这是Rails代码。
<% @pods.each do |podli| %>
<% @podli = podli %>
<% @iden = 'podli-' << @podli.id.to_s %>
<li id="<%= @iden %>" class="ui-state-default">
....
</li>
<% end %>
这是javascript
$(document).ready(function(){
transitions();
//$( "#sortable" ).sortable({containment: 'parent'});
$( "#sortable" ).sortable({ items: '.ui-state-default', containment: 'parent'})//for moving the pods about
$( "#sortable" ).disableSelection();
//$("#newspod" ).val("Enable Sort").closest("#newspod").removeClass("sortable")
$('#sortable').live('sortstop', function(event) {
var u = $(this).sortable('serialize', { key: 'id', expression: /podli-\d/ })// + '&index=' + jQuery(this).attr("id").substring(19);
alert(u);
$.ajax({
type: 'POST',
data: { display_order: u },//$('#receiving-list').sortable('serialize') + '&index=' + jQuery(this).attr("id").substring(19),
url: "<%= sort_dashboards_path %>"
})
});
});
答案 0 :(得分:0)
当您调用“序列化”方法(通过“可排序”插件)时,您的“表达式”正则表达式必须包含一个捕获组,无论该值应该是什么:
var u = $(this).sortable('serialize', { key: 'id', expression: /podli-(\d+)/ });
通过包装“\ d”(注意我无法帮助自己,我添加了“+”,如果你的括号中有超过10个),插件将获得它对你的正则表达式的期望
该方法的jQuery UI文档非常糟糕。