Javascript 序列化选择

Javascript 序列化选择,javascript,jquery,serialization,Javascript,Jquery,Serialization,我的表格(大约) 城市1 城市2 ... 西廷 仓库1 仓库2 ... 仓库 根据第一个选项的选择,选择动态创建的仓库。 我需要serialize() cityName=City1&cityValue=db5c88c4-391c-11dd-90d9-001a92567352&warehousesName=Warehouses1&warehousesValue=db5c88c4-391c-11dd-90d9-001a92567352 我该怎么做呢?如果您正在发布数据,您可以使用对象,也可以使用

我的表格(大约)


城市1
城市2
...
西廷
仓库1
仓库2
...
仓库
根据第一个选项的选择,选择动态创建的仓库。 我需要
serialize()

cityName=City1&cityValue=db5c88c4-391c-11dd-90d9-001a92567352&warehousesName=Warehouses1&warehousesValue=db5c88c4-391c-11dd-90d9-001a92567352


我该怎么做呢?

如果您正在发布数据,您可以使用对象,也可以使用FormData。无论哪种方式,您都需要构建新结构,因为您的表单不包含这些项。大多数人会使用该值在所需的数据服务器端查找数据,而不是将其发送到服务器。根据需要将最小数量的数据传递给服务器

$(函数(){
$(“表格”)。提交(功能(e){
e、 预防默认值();
var fData={};
//备选方案:
var formD=new FormData();
$(“选择”,此)。每个(函数(i,el){
fData[$(el).attr(“名称”)+“名称”]=$(“选项:选定”,el).text().trim();
fData[$(el).attr(“名称”)+“值”]=$(el).val();
//备选方案:
formD.append($(el).attr(“name”)+“name”,$(“选项:已选定”,el).text().trim());
formD.append($(el.attr(“name”)+“Value”,$(el.val());
});
console.log($.param(fData));
//FormData没有序列化或字符串化方法
for(formD.entries()的变量对){
log(对[0]+':'+对[1]);
}
});
});

城市1
城市2
西廷
仓库1
仓库2
仓库

欢迎来到堆栈溢出。你现在得到了什么?有些东西不起作用了吗?您的表单看起来是正确的,除了
名称
属性与您在post数据中描述的不匹配。请注意,您可以使用
$.param(fData)
获取OP要求的确切格式
<form name="ShoppingCart" method="post">
  <select name="city">
    <option value="db5c88c4-391c-11dd-90d9-001a92567626">City1</option>
    <option value="db5c88c4-391c-11dd-90d9-001a92567636">City2</option>
    ...
    <option value="db5c88c4-391c-11dd-90d9-001a92567689">CityN</option>
  </select>
  <select name="warehouses">
    <option value="db5c88c4-391c-11dd-90d9-001a92567329">Warehouses1</option>
    <option value="db5c88c4-391c-11dd-90d9-001a92567452">Warehouses2</option>
    ...
    <option value="db5c88c4-391c-11dd-90d9-001a92567352">WarehousesN</option>
  </select>
  <div>
      <input class="submit_form" type="submit" name="Submit" value="Submit" />
  </div>
</form>