【问题标题】:jQuery serialize using rails doesn't work for custom ids使用 rails 的 jQuery 序列化不适用于自定义 ID
【发布时间】:2011-10-17 15:09:55
【问题描述】:

在对我的 id 进行了多次 puts() 试验后,我很确定这是某种 Javascript 错误,而不是 Rails 错误...

我正在尝试使用 jQuery 的序列化函数序列化一堆 li。我想根据一组自定义的 id 来做......在我的例子中,podli-1、podli-2、podli-3 等。我尝试通过使用序列化“表达式”选项来做到这一点。

当我尝试使用警报(如下所示)对其进行调试时,我得到的结果是:id=undefined&id=undefined&id=undefined&id=undefined&id=undefined&id=undefined&id=undefined

-- 这实际上是 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 %>"
    })

});

});

【问题讨论】:

    标签: javascript jquery ruby-on-rails serialization jquery-ui-sortable


    【解决方案1】:

    当您调用“序列化”方法(通过“可排序”插件)时,您的“表达式”正则表达式必须包含一个捕获组,无论该值应该是什么:

     var u = $(this).sortable('serialize', { key: 'id', expression: /podli-(\d+)/ });
    

    通过将“\d”(请注意,我情不自禁地添加了“+”,以防您有超过 10 个)括在括号中,插件将从您的正则表达式中获得它所期望的内容.

    该方法的 jQuery UI 文档很糟糕。

    【讨论】:

    • 非常感谢!我将把它标记为已解决,但你能解释一下捕获组是什么以及我为什么需要它吗? (我意识到这与 li 的区别——他们的身份证号码有关)
    猜你喜欢
    • 2016-07-17
    • 2012-10-26
    • 2020-04-20
    • 2013-01-06
    • 2019-09-20
    • 1970-01-01
    • 1970-01-01
    • 2017-06-16
    • 2019-06-03
    相关资源
    最近更新 更多