You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AJAX请求如何使用动态可变的表单字段名作为提交参数?

问题原因

直接在对象字面量中使用变量作为键名时,JavaScript默认会将变量名直接作为字符串类型的键,不会读取变量中存储的实际字段名,所以导致请求参数不符合后端要求。

解决方案

方案1:使用ES6+ 计算属性名(推荐)

只需要给动态键名包裹方括号[]即可,JS会先计算括号内变量的值,再将该值作为对象的键:

var dataString = {
    'u': opt_u_val,
    'id': opt_userid_val,
    [opt_email]: opt_email_val,
    [opt_name] : opt_name_val,
    [opt_phone] : opt_phone_val,
    [opt_business] : opt_business_val,
    [opt_unique_name] : ''
};

这种写法在所有现代浏览器(Chrome 47+、Firefox 41+、Edge 12+、Safari 10.1+)都可以正常支持。

方案2:ES5兼容写法

如果需要兼容旧版浏览器,可以先初始化对象,再通过方括号赋值的方式添加动态键:

// 先初始化固定参数
var dataString = {
    'u': opt_u_val,
    'id': opt_userid_val
};
// 动态添加可变参数
dataString[opt_email] = opt_email_val;
dataString[opt_name] = opt_name_val;
dataString[opt_phone] = opt_phone_val;
dataString[opt_business] = opt_business_val;
dataString[opt_unique_name] = '';

这种写法兼容所有主流浏览器包括IE8及以上版本。

内容的提问来源于stack exchange,提问作者EasyWay

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 10:54:00