【问题标题】:Dynamic Form Input Value not updating Javascript Object动态表单输入值不更新 Javascript 对象
【发布时间】:2020-07-24 19:19:34
【问题描述】:

这里有新的编码器。我花了一周的时间试图让这个工作,真的需要帮助。我有一个带有一个输入字段的表单。我可以查询它并获取新的名称值。

问题是当我在对象文字键/值对中使用相同的查询时,当您更改值时它不会显示更新的值。它仅在我 console.log 时显示原始值。任何帮助将不胜感激。

HTML

<form id="nameForm" class="nameForm" action="#">

<label id="nameLabel" for="nameInput">Enter Your Name:</label>

<input type="text" id="nameInput" class="nameInput" required>

<button id="next" type="button">Next</button>
</form>

JavaScript

let salonOwner = {

name: document.querySelector(#nameInput).value

}

【问题讨论】:

  • 试试改成name: document.querySelector(".nameInput").value
  • document.querySelector('#nameInput').value 也可以使用
  • 感谢您修复我的语法 Dominik 和 osekmedia!

标签: javascript forms object key-value-store


【解决方案1】:

您的按钮需要一个 onclick 事件,它调用您的新功能更新。所以每次按下你的对象都会更新。

<form id="nameForm" class="nameForm" action="#">
    <label id="nameLabel" for="nameInput">Enter Your Name:</label>
    <input type="text" id="nameInput" class="nameInput" required>
    <button id="next" type="button" onclick="update();">Next</button>
</form>

<script>
    function update() {
        let salonOwner = {
            name: document.querySelector("#nameInput").value
        }
        console.log(salonOwner);
    }
</script>

【讨论】:

  • 哇,谢谢 Sascha,效果很好。非常感谢。
【解决方案2】:

所以基本上 javascript 文件只运行一次,所以您需要添加 EventListener 以在您提交表单并通过它更新 salonOwner 时进行监听

<form id="nameForm" class="nameForm" action="#">

    <label id="nameLabel" for="nameInput">Enter Your Name:</label>
    
    <input type="text" id="nameInput" class="nameInput" required>
    
    <button id="next" type="submit">Next</button>
</form>
let salonOwner = {
  name: ""
}

//Initilize Dom Element
let form = document.querySelector("#nameForm")


//Add EventListener to Update The salonOwner Object
form.addEventListener("submit" , (e)=>{
  let name = document.querySelector("#nameInput").value;
  salonOwner.name = name;
})

【讨论】:

  • 如果您想防止表单的默认设置,只需在 eventListener 正文中添加 e.preventDefault()
  • 感谢关于 JS 运行一次的提示。以后我一定会记住的!
猜你喜欢
  • 1970-01-01
  • 2015-01-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-10
相关资源
最近更新 更多