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

使用AlpineJS提交表单时出现‘Can't find variable: data’错误求助

AlpineJS表单提交错误分析与修复

你的代码存在两个关键问题,导致提交时出现报错:

  • submit方法中访问组件属性未使用this
    在组件的submit方法里,要访问自身的data属性,必须通过this来引用当前组件实例。直接写data.name.value会被JS识别为全局变量,自然找不到,这就是错误提示里“Can't find variable: data”的原因。

  • 创建request对象时错误使用new关键字
    JS中声明对象字面量不需要加new,new {}属于语法错误,会阻止代码正常执行。


修正后的完整代码

<form x-data="inquiry()" x-on:submit.prevent="submit" method="post">
  <div>
    <label>Name</label>
    <input type="text" name="name" x-model="data.name.value">
  </div>
  <div>
    <label>Email</label>
    <input type="text" name="email" x-model="data.email.value">
  </div>
  <div class="action">
    <button>Submit</button>
  </div>
</form>

<script>
  function inquiry() {
    return {
      data: {
        name: { value: "", error: "" },
        email: { value: "", error: "" }
      },
      submit() {
        // 去掉new,用this访问data
        let request = {
          name: this.data.name.value,
          email: this.data.email.value
        }

        console.log(request);
      }
    };
  }
</script>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 22:10:27