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

调用返回对象的jQuery函数,得到undefined()而非undefined的问题

解决变量返回undefined()的问题

首先咱们先搞清楚核心问题:你看到的undefined()并不是JS原生的undefined值,而是一个名叫undefined的函数。这说明你的代码里要么不小心把undefined这个标识符覆盖成了函数,要么负责获取值的函数错误地返回了这个自定义的undefined函数。结合你说控制台能输出正确的对象,大概率是返回环节出了问题,咱们一步步排查:

1. 检查是否意外覆盖了全局undefined

先看看代码里有没有类似这种低级错误:

// 不小心把undefined定义成了函数
function undefined() {} 

// 或者给全局的undefined赋值了函数
window.undefined = function() {};

如果有这种代码,赶紧删掉!undefined在JS里本来是全局的原始值,把它改成函数肯定会搞乱逻辑。

2. 检查获取值函数的返回语句

你说控制台能输出正确的对象({"totalPayment":"123","nameVal":"John Smith"...}),说明函数内部已经正确组装了数据,但返回的时候写错了。比如可能是这样:

function getFormValues() {
  let formData = {
    totalPayment: $('#totalPayment').val(),
    nameVal: $('#nameVal').val(),
    // 其他字段...
  };
  console.log(formData); // 这里能正确输出对象
  // 错误写法:返回了自定义的undefined函数
  return undefined; 
}

把这里的return undefined;改成return formData;就对了!让函数返回你组装好的那个对象。

3. 确认函数调用方式是正确的

确保你是执行函数而不是直接把函数本身赋值给变量:

// 正确:调用函数,拿到返回值
let result = getFormValues(); 

// 错误:只是把函数引用赋值给变量,不会拿到页面值(不过这种情况打印出来是函数本身,不是undefined(),但还是要确认)
let result = getFormValues; 

最后测试验证

修改完之后,再打印变量看看:

let result = getFormValues();
console.log(result); // 应该输出你期望的对象:{"totalPayment":"123","nameVal":"John Smith"...}

如果还是有问题,可以把完整的函数代码贴出来,咱们再进一步排查,但按照你描述的情况,上面的步骤应该能解决问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 07:49:13