原生JS获取input标签value属性返回空字符串问题求助
问题原因
inputTask、inputStatus的取值逻辑执行在页面初始化阶段,此时用户还未输入内容,拿到的默认是空字符串- 点击事件的回调函数直接复用了初始化时的空值,没有在点击触发时重新读取输入框的最新内容,因此打印结果始终为空
解决方案
修改JS逻辑,将输入框取值操作放到点击事件回调内,点击触发时再读取最新输入值。另外原HTML代码中属性之间多余的逗号属于语法错误,建议同步修正:
修正后JS代码
// 提前缓存输入框DOM元素,避免每次点击重复查询DOM const taskInput = document.getElementById('add-task'); const statusInput = document.getElementById('add-status'); document.getElementById('task-add-btn').addEventListener('click', (event)=>{ // 点击时读取最新输入值 let newEntry = { title : taskInput.value, status : statusInput.value } console.log(newEntry); });
修正后HTML代码
<input type='text' id='add-task' placeholder="Add TODO Task"> <input type="text" id='add-status' placeholder="Status True/False"> <div id="task-add"> <button id='task-add-btn' class="btn">Add Tasks</button> </div>
内容的提问来源于stack exchange,提问作者Abhishek Sharma
相关产品推荐
相关产品推荐

