首页 > 解决方案 > 将动态生成的值发送到 ajax 数据

问题描述

拥有这个

var cData={};
var arr=[];
datacolumns.split(",").forEach((element)=>{
    arr.push({data:element.trim()})
    cData[element] = `$(#${element.trim(0)}).val()`;
});

但是当我在 ajax Data:cData 中调用 cData 时,它会将表单发送为

authorid    "$(#authorid).val()"
firstname   "$(#firstname).val()"
lastname    "$(#lastname).val()"
sorted  "$(#sorted).val()"

这是怎么回事,我的线索为零

标签: javascriptjquery

解决方案


我认为您错误地使用了反引号。如果element是字符串,则不需要使用它们。

var cData={};
var arr=[];
datacolumns.split(",").forEach((element)=>{
  var el = element.trim();
  arr.push({ data: el });
  cData[el] = $("#" + el).val();
});

所以当你通过循环时,你应该每次都得到一个新的选择器:

$("#authorid").val();
$("#firstname").val();
$("#lastname").val();
$("#sorted").val();

只要这些元素以正确的 ID 存在并具有value属性,就应该可以填充您的对象。


推荐阅读