过去我总是使用一个隐藏字段,在onClick事件的提交按钮上,我使用自定义代码将列表内容(li元素的文本)填充到隐藏的表单字段中,并在服务器上解析它 - 使用自定义代码。
这总是感觉像是一个黑客,我想知道是否有更现代的方法。我想找到最通用的方法,但如果工具很重要,我在客户端上使用JQuery,在服务器上使用Ruby / Sinatra。也许将列表转换为JSON对象,然后在服务器端使用?
答案 0 :(得分:1)
如果您想作为以逗号分隔的值
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(" "));
答案 1 :(得分:0)
目前尚不清楚您要传递的html <ol><li>...</li>...</ol>
列表的确切方面,但假设您的意思是成员<li>
标记的文本内容,那么您可能会这样做:
$('ol.selector li')
.each(function(i) {
$("<input name='something-" + i + "'>")
.val($(this).html())
.appendTo('form.selector');
}
};