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

购物清单Todo App:点击提交按钮后列表项短暂显示随即消失求助

问题:点击Submit按钮后列表项短暂显示后消失

核心原因

你的Submit按钮嵌套在<form>标签内,浏览器默认会把未指定type的按钮识别为submit类型,点击后会触发表单的默认提交行为——页面重新加载,刚创建的列表项会随着页面刷新消失。

解决方法(二选一即可)

方法1:阻止表单默认提交行为

在按钮的点击事件里添加event.preventDefault(),取消浏览器的默认提交动作:

button.addEventListener('click',(e)=>{
  e.preventDefault(); // 关键代码:阻止表单提交刷新页面
  const myData = input.value
  input.value = ''

  const newdiv = document.createElement('div')
  newdiv.classList.add('newdiv'); 

  const listInput = document.createElement('li')
  const textdata = document.createElement('span')
  textdata.textContent = myData;
  const delButton = document.createElement('button')
  delButton.textContent = 'delete';
  
  listInput.appendChild(textdata)
  newdiv.appendChild(listInput)
  newdiv.appendChild(delButton)
  list.appendChild(newdiv)

  delButton.addEventListener('click',()=>{
    newdiv.remove(); // 修正删除逻辑:直接删除条目容器
  })
})

方法2:修改按钮类型为普通按钮

直接在HTML的按钮标签上指定type="button",让它不再触发表单提交:

<button type="button">Submit</button>

额外小修正

原删除按钮逻辑存在错误:list.removeChild(listInput)中的listInput并不是list的直接子元素(newdiv才是),导致删除动作无法生效。改成newdiv.remove()可以直接删除整个条目容器,逻辑更简洁准确。

内容的提问来源于stack exchange,提问作者denis kiplangat

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 23:23:25