新闻中心

使用 J*aScript 更新元素中的输入值

2025-10-12
浏览次数:
返回列表

使用 javascript 更新元素中的输入值

本文档旨在指导开发者如何使用 J*aScript 动态更新 HTML 元素中的输入值,并提供两种实现方法:直接更新和利用表单。此外,还介绍了如何使用 LocalStorage 持久化存储消息,以便在页面刷新后保留数据。

方法一:直接更新元素

这种方法直接获取输入元素的值,并在点击事件发生时,将这些值添加到新的元素中。

HTML 结构:

<div class="msg">
  <div class="items"></div>
  <div class="input">
    <input type="text" class="name" placeholder="Name">
    <input type="text" class="message" placeholder="Message">
    <button id="button">Submit</button>
    <button type="reset">Reset</button>
  </div>
</div>

CSS 样式:

html, body {
  padding: 0;
  margin: 0;
}

.msg {
  padding: 2em;
  margin: 2em;
  border-radius: 2vh;
  height: 70vh;
  display: flex;
  align-items: center;
  justify-content: left;
  flex-direction: column;
  background-color: #1e90ff;
}

.items {
  height: 65vh;
  overflow: scroll;
  color: white;
  width: 100%;
  overflow-x: hidden;
  margin: 10px;
}

input {
  padding: 10px;
  border: none;
  border-radius: 8px;
  outline: none;
  font-size: 1em;
}

#button {
  padding: 10px 20px;
  border-radius: 8px;
  border: none;
  font-size: 1em;
}

.button {
  padding: 10px 20px;
  border-radius: 8px;
  border: none;
  font-size: 1em;
}

.message-item {
  background-color: black;
  padding: 1em;
  border-radius: 8px;
  margin: 3px;
}

J*aScript 代码:

BizPower CRM客户管理系统 BizPower CRM客户管理系统

通过使用BizPower CRM解决方案,您的员工、生产过程及信息能够与客户保持着平稳、无间断的联络,并且能够通过以客户为焦点、创新的产品和服务;以客户为中心,更高层次的生产过程;持久有益的客户关系这三个方面创造有价值客户的领导关系。选择Bizpower CRM的原因1、灵活的数据权限和功能权限BizPower CRM 系统通过引入了灵活的数据权限和功能权限,模仿现实中协同工作的实际情况。 实现企

BizPower CRM客户管理系统 0 查看详情 BizPower CRM客户管理系统
const
  name = document.querySelector('.name'),
  message = document.querySelector('.message'),
  btn = document.getElementById('button'),
  div = document.querySelector('.items');

const handleAdd = (e) => {
  div.insertAdjacentHTML('beforeend', `
    <div class="message-item">
      <h3>${name.value}</h3>
      <p>${message.value}</p>
    </div>
  `);
  name.value = '';    // Clear name
  message.value = ''; // Clear message
};

btn.addEventListener('click', handleAdd);

代码解释:

  1. 首先,获取需要的 DOM 元素:name 输入框,message 输入框,button 按钮,以及 items 容器。
  2. handleAdd 函数:
    • 使用 insertAdjacentHTML 方法在 items 容器的末尾插入一个新的 div 元素,该元素包含 name 和 message 的值。
    • 清空 name 和 message 输入框的值,以便用户输入新的内容。
  3. 为 button 按钮添加点击事件监听器,当点击按钮时,执行 handleAdd 函数。

注意事项:

  • 确保在 J*aScript 代码中正确获取了 DOM 元素。
  • 使用 insertAdjacentHTML 方法可以方便地插入 HTML 代码。
  • 在添加完元素后,清空输入框的值,可以提高用户体验。

方法二:使用表单

使用表单可以更好地利用浏览器提供的功能,例如表单验证、提交和重置。

HTML 结构:

<div class="msg">
  <div class="items"></div>
  <form id="new-msg" autocomplete="off">
    <input type="text" name="name" placeholder="Name" required>
    <input type="text" name="message" placeholder="Message">
    <button type="submit" class="form-btn">Submit</button>
    <button type="reset" class="form-btn">Reset</button>
  </form>
</div>

CSS 样式:

html, body {
  padding: 0;
  margin: 0;
}

.msg {
  padding: 2em;
  margin: 2em;
  border-radius: 2vh;
  height: 70vh;
  display: flex;
  align-items: center;
  justify-content: left;
  flex-direction: column;
  background-color: #1e90ff;
}

.items {
  height: 65vh;
  overflow: scroll;
  color: white;
  width: 100%;
  overflow-x: hidden;
  margin: 10px;
}

input {
  padding: 10px;
  border: none;
  border-radius: 8px;
  outline: none;
  font-size: 1em;
}

.form-btn {
  padding: 10px 20px;
  border-radius: 8px;
  border: none;
  font-size: 1em;
}

.message-item {
  background-color: black;
  padding: 1em;
  border-radius: 8px;
  margin: 3px;
}

J*aScript 代码:

const handleAdd = (e) => {
  e.preventDefault(); // Prevent page from n*igating
  const
    form = e.target,
    formElements = form.elements,
    parent = form.closest('.msg'),
    items = parent.querySelector('.items');
  items.insertAdjacentHTML('beforeend', `
    <div class="message-item">
      <h3>${formElements.name.value}</h3>
      <p>${formElements.message.value}</p>
    </div>
  `);
  formElements.name.value = '';    // Clear name
  formElements.message.value = ''; // Clear message
  formElements.name.focus();
};

document.forms.namedItem('new-msg')
  .addEventListener('submit', handleAdd);

代码解释:

  1. handleAdd 函数:
    • e.preventDefault() 阻止表单的默认提交行为,防止页面刷新。
    • 获取表单元素:form,formElements,parent,items。
    • 使用 insertAdjacentHTML 方法在 items 容器的末尾插入一个新的 div 元素,该元素包含 name 和 message 的值。
    • 清空 name 和 message 输入框的值。
    • 使用 formElements.name.focus() 将焦点设置到 name 输入框,方便用户继续输入。
  2. 使用 document.forms.namedItem('new-msg') 获取名为 new-msg 的表单,并为其添加 submit 事件监听器,当表单提交时,执行 handleAdd 函数。

注意事项:

  • 使用表单可以利用浏览器提供的验证功能,例如 required 属性。
  • e.preventDefault() 阻止表单的默认提交行为非常重要。
  • 使用 formElements.name.focus() 可以提高用户体验。

方法三:使用 LocalStorage 持久化存储

如果需要在页面刷新后保留消息,可以使用 LocalStorage。

J*aScript 代码:

const MESSAGES_KEY = "messages";

const main = () => {
  // Restore all messages
  const messageContainer = document.querySelector(".items");
  __retrieveAllMessages().forEach((message) => {
    insertMessage(message, messageContainer);
  });
  // Add event listener
  document.forms.namedItem("new-msg").addEventListener("submit", handleAdd);
};

const s*eMessage = (message) => {
  __s*eAllMessages(__retrieveAllMessages().concat(message));
};

const insertMessage = (message, container) => {
  container.insertAdjacentHTML("beforeend", messageToHtml(message));
};

const messageToHtml = ({ name, message }) => `
  <div class="message-item">
    <h3>${name}</h3>
    <p>${message}</p>
  </div>
`;

const handleAdd = (e) => {
  e.preventDefault(); // Prevent page from n*igating
  const form = e.target,
    message = {
      name: form.elements.name.value,
      message: form.elements.message.value,
    };
  s*eMessage(message);
  insertMessage(message, form.closest(".msg").querySelector(".items"));
  form.elements.name.value = ""; // Clear name
  form.elements.message.value = ""; // Clear message
  form.elements.name.focus();
};

const __retrieveAllMessages = () => {
  return JSON.parse(localStorage.getItem(MESSAGES_KEY) ?? "[]");
};

const __s*eAllMessages = (messages = []) => {
  return localStorage.setItem(MESSAGES_KEY, JSON.stringify(messages));
};

main();

代码解释:

  1. MESSAGES_KEY 定义了 LocalStorage 中存储消息的键名。
  2. main 函数:
    • 在页面加载时,从 LocalStorage 中恢复所有消息,并将其添加到 items 容器中。
    • 为表单添加 submit 事件监听器。
  3. s*eMessage 函数:将新的消息添加到 LocalStorage 中。
  4. insertMessage 函数:将消息添加到 items 容器中。
  5. messageToHtml 函数:将消息对象转换为 HTML 字符串。
  6. handleAdd 函数:
    • 阻止表单的默认提交行为。
    • 获取表单元素的值,并创建一个消息对象。
    • 将消息保存到 LocalStorage 中。
    • 将消息添加到 items 容器中。
    • 清空输入框的值,并将焦点设置到 name 输入框。
  7. __retrieveAllMessages 函数:从 LocalStorage 中获取所有消息。
  8. __s*eAllMessages 函数:将所有消息保存到 LocalStorage 中。

注意事项:

  • LocalStorage 存储的数据是字符串,因此需要使用 JSON.stringify 和 JSON.parse 方法进行转换。
  • LocalStorage 存储的数据大小有限制,一般为 5MB。
  • LocalStorage 存储的数据是持久化的,即使关闭浏览器,数据仍然存在。

总结:

本文档介绍了三种使用 J*aScript 更新 HTML 元素中输入值的方法,并提供了详细的代码示例和解释。开发者可以根据自己的需求选择合适的方法。使用表单可以更好地利用浏览器提供的功能,而使用 LocalStorage 可以持久化存储数据。

以上就是使用 J*aScript 更新元素中的输入值的详细内容,更多请关注其它相关文章!


# 客户管理系统  # 网站链接推广包括  # 亳州网站推广哪家便宜些  # 泰安seo优化排名公司  # 供电公司网站建设  # 通化网站优化团队推荐  # 网站建设基础软件  # 百度seo高级指令  # 梅州seo网络推广方案  # 网站建设维护造价  # seo名言  # 拖拽  # 自己的  # 如何使用  # 新和  # 自定义  # css  # 复选框  # 清空  # 输入框  # 表单  # over  # 表单提交  # 点击事件  # 持久化存储  # ai  # 浏览器  # json  # js  # html  # java  # javascript 


相关栏目: 【 科技资讯46185 】 【 网络学院92790


相关推荐: 在J*a中如何开发简易仓库管理与库存统计_仓库管理库存统计项目实战解析  AO3最新官网入口公告_2025AO3镜像站实时查询方法  漫蛙漫画官方主页入口 漫蛙MANWA网页直达访问链接  J*a 递归快速排序中静态变量的状态管理与陷阱  AWS EC2实例间SQL Server连接超时:安全组配置与故障排除指南  Typer应用中灵活处理命令行参数的令牌化与解析  Win11蓝牙耳机断连怎么解决 Win11蓝牙设置重新配对与驱动更新【技巧】  快速CSGO开箱网站指南 CSGO开箱平台推荐  如何在Promise链中有效终止错误处理后的执行  ExcelARRAYTOTEXT函数怎么自定义分隔符输出数组文本_ARRAYTOTEXT实现动态生成SQL语句  c++20的std::jthread是什么_c++可中断线程与RAII式管理  深入理解Go语言中Map值与方法接收器的交互:为什么需要临时变量  Python中高效且防溢出的双曲正弦计算:基于对数空间的优化策略  Golang如何使用bytes.Split分割字节切片_Golang bytes切片分割方法  CSS Flexbox如何实现多行排列_flex-wrap wrap自动换行显示  Yandex搜索引擎一键访问入口_俄罗斯Yandex官网免登录  J*aScript中管理异步API调用:确保操作顺序与数据一致性  使用CSS更改登录屏幕输入框中PNG图标颜色的策略与局限性  学习通网页版快速入口 学习通官网网页版直接打开  2026春节假期票务安排_2026春节放假购票指南  在VS Code中配置和运行Dart程序的完整步骤  在J*a中如何隐藏复杂性_使用门面模式组织对象交互  React中useState与局部变量:理解组件状态管理与渲染机制  AngularJS $http POST请求数据传递与Go后端接收实践  css元素hover动画延迟生效怎么办_使用animation-delay调整触发时间  字由网在线版登录地址 字由网网页版安全入口  邮编格式怎么匹配地址_根据邮编格式快速匹配详细地址的技巧  如何为你的Composer包编写自动化测试_集成PHPUnit到Composer的scripts工作流  如何创建独立于主系统的J*a运行环境_隔离式环境搭建策略  星露谷物语官网入口 星露谷物语游戏官网入口  腾讯视频怎么举报不良内容_腾讯视频内容举报流程与违规信息处理方法  Win11怎么查看电脑配置_Win11硬件配置检测工具使用  移动端XML文件怎么转换成Excel 手机和平板上的解决方案  QQ邮箱稳定登录入口_QQ邮箱官方网站网页版使用  Golang如何通过reflect操作map_Golang reflect map操作与遍历技巧  QQ邮箱电脑版登录入口_QQ邮箱官方网站登录平台  Golang如何实现Web接口签名验证_Golang Web接口签名校验开发方法  Python多线程中正确使用sigwait处理SIGALRM信号  PrimeNG Sidebar背景色自定义指南:CSS覆盖与主题化实践  C++如何实现一个装饰器模式_C++设计模式之动态地给对象添加额外职责  处理Kafka消费者会话超时:深入理解消息处理语义与幂等性  ArrayList与LinkedList操作复杂度详解:遍历与修改  C++如何解决segmentation fault_C++段错误调试与原因分析  NVIDIA股价11月重挫12%:下月有望好转 但难回5万亿美元巅峰  电脑屏幕颜色不舒服怎么办_Windows夜间模式与色彩校准教程【护眼技巧】  如何在 Windows 11 中启动游戏手柄设置  抖音DOU+怎么投最有效 抖音付费推广的ROI提升技巧  PHP高效扁平化嵌套数组:使用array_merge与数组解包操作符  Linux如何构建多环境配置管理_Linux多环境配置方案  2025AO3夸克浏览器通道_AO3手机HTTPS安全入口分享 

搜索