【发布时间】:2015-07-05 00:11:47
【问题描述】:
这是在 python 中我需要两分钟才能解决的问题,但在 js 或 jquery 中我需要花费数小时... 我有一个表格,我需要详细说明数据客户端。
与:
var serializedData = $('form#ae_form_grid').serialize()
我得到这个:
"id=13&quantita_gen_grid=2&prezzo_gen_grid=120&sconto_gen_grid=&prezzo-15=120&quantita-15=4&sconto-15=&selezionato-16=on&prezzo-16=120&quantita-16=2&sconto-16=&prezzo-14=120&quantita-14=2&sconto- 14=&selezionato-17=on&prezzo-17=122&quantita-17=3&sconto-17="
我需要创建一个对象数组,可能来自:
["16":{ prezzo:120,quantita:2,sconto:""},"17":{prezzo:122,quantita:3,sconto:""}]
16 和 17 来自名称中带有“selezionato”的键,prezzo、quantita... 是 -16 和 -17 ..
我试过了:
$.each(serializedData.split('&'), function (index, elem) {
var vals = elem.split('=');
var selected = vals[0].split("-");
if (selected[0] == "selezionato") {
sel.push(selected[1])
}
})
我有一个正确的键数组,但我可以走得更远。
谢谢 F
【问题讨论】:
-
您能分享您的表单 HTML 吗?比序列化然后解析更好的解决方案是使用 JQuery 直接访问所需的元素(甚至创建您正在寻找的数据结构)
-
html代码不易复制,因为是jinja2生成的。它是一个大小和颜色变化的网格,项目相似和不同,仅通过选中的复选框。问题是表单处于模态,因此是异步的,我无法访问主 dom,所以我需要创建这个对象,存储在 html5 存储中并从另一个窗口处理这些数据。谢谢
标签: javascript jquery arrays forms