代码之家  ›  专栏  ›  技术社区  ›  Jeremy Mullin

在HTML表单提交上发布排序列表内容的最佳方法是什么?

  •  2
  • Jeremy Mullin  · 技术社区  · 14 年前

    在过去,我总是使用隐藏字段,在提交按钮onclick事件中,我使用自定义代码将列表内容(li元素的文本)填充到隐藏的表单字段中,并使用自定义代码在服务器端解析它。

    这一直感觉像是一个黑客,我想知道是否有一个更现代的方法。我想找到最通用的方法,但是如果工具很重要,我在客户机上使用jquery,在服务器上使用ruby/sinatra。也许将列表转换成JSON对象,然后在服务器端使用它?

    2 回复  |  直到 14 年前
        1
  •  1
  •   jcubic    14 年前

    如果你想成为昏迷隔离的价值观

    var values = $.map($('ol li'), function(e,i) { 
      return $(e).html();
    });
    $('form').append('<input type="hidden" name="field" value="' + 
       values.join(',') + '"/>');
    

    或者你可以把它作为一个数组

    var inputs = $.map($('ol li'), function(e,i) { 
      return '<input name="field[]" value="' + $(e).html() + '"/>';
    });
    $('form').append(inputs.join(" "));
    
        2
  •  0
  •   MightyE    14 年前

    不清楚HTML的具体方面 <ol><li>...</li>...</ol> 你想通过的列表,但是假设你是指成员的文本内容 <li> 标记,然后您可以这样做:

    $('ol.selector li')
        .each(function(i) { 
            $("<input name='something-" + i + "'>")
                .val($(this).html())
                .appendTo('form.selector');
        }
    };