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

如何将当前登录用户的全名添加到Wix表单提交内容中?

Wix表单提交时获取当前用户全名的代码修复

你的代码核心问题有两个:一是定义了异步箭头函数但从未调用,二是异步处理里有多余的await操作,具体如下:

核心错误点

  • 未调用定义的异步函数:你在onSubmit回调里写了一个匿名异步箭头函数,但只是定义了它,没有执行调用,所以代码根本不会进入这个函数,自然看不到console.log的输出。
  • 多余的await使用:getAuthor函数最后return await author完全没必要——author是普通字符串,不是Promise对象,直接返回即可。

修复后的代码

简洁版(去掉冗余嵌套)

$w.onReady(function () {
  // 将onSubmit回调设为异步函数,直接在内部处理异步逻辑
  $w("#form2").onSubmit(async (values) => {
    const options = { fieldsets: ["FULL"] };
    // 等待获取当前成员数据
    const member = await currentMember.getMember(options);
    // 拼接全名
    const author = `${member.contactDetails.firstName} ${member.contactDetails.lastName}`;
    
    console.log("author: ", author);
    // 这里可以把author添加到表单提交数据中,比如:
    // values.submittedBy = author;
    // 之后执行表单提交或自定义数据处理逻辑
  });
});

保留原函数结构的修复版

如果你想保留getAuthor函数的结构,只需补上函数调用,并去掉多余的await:

$w.onReady(function () {
  $w("#form2").onSubmit(async (values) => {
    async function getAuthor() {
      const options = { fieldsets: ["FULL"] };
      const member = await currentMember.getMember(options);
      const details = member.contactDetails;
      return `${details.firstName} ${details.lastName}`; // 直接返回字符串
    }

    // 调用异步函数并等待结果
    const author = await getAuthor();
    console.log("author: ", author);
  });
});

补充说明

因为你习惯了Java/C++这类语言的异步模型,需要注意JS里的异步函数(async/await)是基于Promise的:

  • 标记为async的函数会自动返回Promise;
  • await只能用在async函数内部,用于等待Promise完成;
  • 定义异步函数后必须调用才会执行,这和你之前熟悉的同步函数调用逻辑一致——如果只定义不调用,代码永远不会执行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 07:29:56