【问题标题】:How to Display User Input (composed of a few submissions) in JavaScript?如何在 JavaScript 中显示用户输入(由几个提交组成)?
【发布时间】:2024-11-09 14:45:01
【问题描述】:

我无法弄清楚我到底做错了什么,我只会得到错误。

index.html

<div id="user-pets">
</div>

<form id="user-pets-form">
  <input type="text">
  <input type="submit">
</form>

index.js



  document.querySelector("#user-pets")
  const createPetForm = document.querySelector("#user-pets-form")
    
  createPetForm.addEventListener("submit", (e) => {
    e.preventDefault()
    let pet = e.target.input.value
     
    document.querySelector("#user-pets").innerHTML += pet
  }

【问题讨论】:

    标签: javascript forms submission


    【解决方案1】:

    我建议您将第二个输入更改为&lt;button type="submit"&gt;Submit&lt;/button&gt; 并将事件侦听器添加到其中(而不是表单)。然后你可以选择输入标签的值,当用户点击提交按钮时将其插入到评论div中

    【讨论】:

      【解决方案2】:

      在查看您的代码后,您犯了两个错误让我解释一下,

      • 在 JavaScript 代码中,您忘记在倒数第二行添加小括号, 这就是为什么它通过错误
      • 在Html中需要在Input字段中添加name属性,否则提交的监听器会一直返回undefined

      我为你修改了这两个代码,请看下面

      HTML

      <div id="user-comments">
      </div>
      
      <form id="user-comments-form">
        <input type="text" name="comments">
        <input type="submit">
      </form>
      

      JavaScript

      document.addEventListener('DOMContentLoaded', () => {
        console.log("DOM is loaded")
      
        document.querySelector("#user-comments")
        const createCommentForm = document.querySelector("#user-comments-form")
          
        createCommentForm.addEventListener("submit", (e) => {
          e.preventDefault()
          let comment = e.target.comments.value;
          document.querySelector("#user-comments").innerHTML += comment;
        })
      })   
      

      【讨论】:

      • 你不知道这对我有多大帮助.. 我还在学习 JS,这很难弄清楚.. 但简单的解决方案 :) 谢谢!