用innerHTML后,之前input输入的数据都没了,是网页刷新了吗,求解答

在使用document.innerHTML+=""方法后,先前在input中输入的数据丢失,疑似页面被刷新。通过步骤描述和代码展示,作者疑惑这是否是.innerHTML方法本身的特性,或是代码错误。已知使用createElement和appendChild可以避免这个问题,但作者希望了解这两种方法的区别。
摘要由CSDN通过智能技术生成

用innerHTML后,之前input输入的数据都没了,是网页刷新了吗,求解答

我操作的步骤:
(1)、用document.InnerHTML+=""方法增加了input标签
(2)、然后在增加的input标签中输入数据
(3)、再使用(1)方法,这时(2)步骤中的数据会消失,然后才出现新增加的input
步骤(1)的图
步骤(2)的图
步骤(3)的图
在这里插入图片描述
在这里插入图片描述
不管有多少数据都会没

代码:


                
非常抱歉,我漏掉了输入数据的部分。在实现动态添加地址的过程中,当用户在输入框中输入地址信息时,我们需要将这些信息保存到地址元素中。以下是一个更新后的示例代码: ```html <form> <label for="name">姓名:</label> <input id="name" type="text"> <label for="phone">电话:</label> <input id="phone" type="text"> <label for="address">地址:</label> <input id="address" type="text"> <button id="add-address" type="submit">添加地址</button> </form> <ul id="address-list"></ul> <script> const addBtn = document.getElementById('add-address'); const addressList = document.getElementById('address-list'); addBtn.addEventListener('click', (event) => { event.preventDefault(); const newAddress = createNewAddressElement(); addressList.appendChild(newAddress); newAddress.classList.add('slide-in'); }); function createNewAddressElement() { const addressElement = document.createElement('li'); addressElement.classList.add('address-item'); // 获取输入框的值 const name = document.getElementById('name').value; const phone = document.getElementById('phone').value; const address = document.getElementById('address').value; // 创建地址内容元素 const addressContent = document.createElement('div'); addressContent.classList.add('address-content'); addressContent.innerHTML = ` <div><span>${name}</span><span>${phone}</span></div> <div>${address}</div> `; addressElement.appendChild(addressContent); // 创建删除按钮 const deleteBtn = document.createElement('button'); deleteBtn.classList.add('delete-address'); deleteBtn.innerText = '删除'; addressElement.appendChild(deleteBtn); // 为删除按钮添加点击事件处理函数 deleteBtn.addEventListener('click', () => { addressList.removeChild(addressElement); }); // 将地址元素设为不可见状态 addressElement.style.opacity = '0'; // 清空输入框 document.getElementById('name').value = ''; document.getElementById('phone').value = ''; document.getElementById('address').value = ''; return addressElement; } </script> ``` 在这个示例中,我们添加了一个表单元素,并将添加地址按钮的类型设为 `submit`,以便处理表单的提交事件。在点击添加地址按钮时,我们需要阻止默认的表单提交行为,以便我们能够处理添加地址的逻辑。因此我们在按钮的点击事件处理函数中添加了一个 `event.preventDefault()` 语句,用于阻止默认的表单提交行为。 在 `createNewAddressElement` 函数中,我们获取了输入框中的值,并将这些值保存到地址元素中。我们使用了一个模板字符串来定义地址内容元素的HTML代码,将姓名、电话和地址信息显示在同一个元素中。在创建完地址元素后,我们清空了输入框中的值,以便用户可以继续添加新的地址。 请注意,在这个示例中,我们假设用户输入框中的值都是合法的,并有进行任何的验证。如果你需要对用户输入的值进行验证,请根据具体的需求进行修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值