jquery - 在 html 表单提交上发布有序列表内容的最佳方式是什么?

标签 jquery html forms dom sinatra

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

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

最佳答案

如果你想作为逗号分隔的值

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(" "));

关于jquery - 在 html 表单提交上发布有序列表内容的最佳方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3797766/

相关文章:

html - CSS Flex 列换行不起作用

javascript - 如何使嵌入 HTML 格式的 YouTube 视频的 iframe 静音?

html - 使用单选按钮组中断键盘焦点

forms - Symfony 2 Form 创建用户并添加组

javascript - 如何使用jquery计算一个文本框的值并将其设置到另一个文本框

jquery - JS/jQ 处理大量 setTimeouts 的更有效方法

javascript - 如何更改 DataTables 中分页按钮的默认悬停样式

forms - 我如何从子表单中获取父 Symfony3 表单的值?

javascript - 无法检测 Android Barcode Scanner 输入、JavaScript 的关键事件

javascript - 将存储在 XML 中的数据传递给 onCellSelect