JavaScript提交表单[重复]

Posted

技术标签:

【中文标题】JavaScript提交表单[重复]【英文标题】:JavaScript submit form [duplicate] 【发布时间】:2022-01-09 09:59:22 【问题描述】:

大家好,感谢您的宝贵时间。我在 JS 中提交表单时遇到问题。显然我的表单的值为“null”,但我不知道为什么。你能帮我吗,我是 JS 新手。

html

<form id="form">
  <input type="text" id="username" placeholder="Username" required>
  <input type="email" id="email" placeholder="Email" required>
  <input type="submit" value="Register">
</form>

JS:

var form = document.getElementById('form')

form.addEventListener('submit',function(event)
  event.preventDefault()

  var username = document.getElementById("username").value
   console.log(username)
    
      var email = document.getElementById("email").value
      console.log(email)
    )

错误按摩: 未捕获的 TypeError:无法读取 null 的属性(正在读取 'addEventListener')

【问题讨论】:

你是如何加载/运行你的 javascript 的?确保等到 DOM 加载完毕,即使用 DOMContentLoaded event。 嗯,你是如何在你的 HTML 页面中执行 JS 的?你能展示你的整个 HTML 吗? 提交表单时,使用元素的name 属性,并且您的元素没有名称。如果您通过默认提交操作提交表单,这可能会导致您在服务器端检索数据的能力出现问题。从你的问题中我不清楚你是如何提交表格的。 【参考方案1】:

请确保您首先像这样加载您的 html:

<body>
  <form id="form">
    <input type="text" id="username" placeholder="Username" required>
    <input type="email" id="email" placeholder="Email" required>
    <input type="submit" value="Register">
  </form>
  <!--Javascript-->
  <script>
    var form = document.getElementById('form')

    form.addEventListener('submit',function(event)
      event.preventDefault()

      var username = document.getElementById("username").value
      console.log(username)
    
      var email = document.getElementById("email").value
      console.log(email)
    )
  </script>
</body>

除此之外它看起来还不错。

【讨论】:

以上是关于JavaScript提交表单[重复]的主要内容,如果未能解决你的问题,请参考以下文章

防止表单重复提交

如何避免表单重复提交

如何防止表单重复提交

JavaWeb温习之防止表单重复提交

HTML表单提交未在Wordpress帖子中调用Javascript“onsubmit”处理程序[重复]

防止表单重复提交