
本文详解如何通过原生 javascript 获取多个文本框的输入值,并将其结构化展示在页面另一区域的 div 中,重点纠正 id 选择器误用、html/css 选择器不一致等常见错误,提供可直接运行的完整示例。
本文详解如何通过原生 javascript 获取多个文本框的输入值,并将其结构化展示在页面另一区域的 div 中,重点纠正 id 选择器误用、html/css 选择器不一致等常见错误,提供可直接运行的完整示例。
在实际开发中,常需将用户在表单中填写的信息实时汇总并展示于指定区域。但初学者容易混淆 getElementById() 与类选择器(.class)的用法,导致脚本无法正确获取或更新 DOM 元素。核心问题通常有两个:一是 HTML 中使用 class 属性定义元素,却在 JavaScript 中错误调用 document.getElementById();二是 CSS 中用类名(如 .float-child2)定义样式,而 JS 却试图通过 id 查找——二者必须严格匹配。
✅ 正确做法是:统一使用 id 作为唯一标识符进行 DOM 操作。以下为优化后的完整实现:
如果你了解HTML,CSS和JavaScript,您已经拥有所需的工具开发Android应用程序。本动手本书展示了如何使用这些开源web标准设计和建造,可适应任何Android设备的应用程序 - 无需使用Java。您将学习如何创建一个在您选择的平台的Android友好的网络应用程序,然后转换与自由PhoneGap框架到一个原生的Android应用程序。了解为什么设备无关的移动应用是未来的潮流,并开始构建应用程序,提供更
✅ HTML 结构(使用 id 替代 class 用于 JS 定位)
<div class="float-container">
<div id="float-child">
<label>First Name:</label><input title="FirstName" id="txtFname"><br>
<label>Last Name:</label><input title="lastName" id="txtLname"><br>
<label>Age:</label><input title="age" id="txtage"><br>
<label>Email Address:</label><input title="Email" id="txtemail"><br>
<button onclick="onTransfer()">Transfer</button>
</div>
<div id="float-child2"></div>
</div>✅ CSS 样式(对应修改为 ID 选择器)
.float-container {
border: 3px solid #fff;
padding: 20px;
width: 100%;
height: auto; /* 推荐改为 auto,避免高度塌陷 */
overflow: hidden; /* 清除浮动影响 */
}
#float-child {
width: 48%;
float: left;
padding: 20px;
border: 2px solid red;
}
#float-child2 {
width: 46%;
float: right;
padding: 20px;
border: 2px solid red;
min-height: 120px; /* 确保内容区有基础高度 */
}✅ JavaScript 逻辑(精准提取 & 格式化输出)
function onTransfer() {
// 获取各输入框的值(注意:.value 而非 .innerHTML)
const fname = document.getElementById('txtFname').value || 'N/A';
const lname = document.getElementById('txtLname').value || 'N/A';
const age = document.getElementById('txtage').value || 'N/A';
const email = document.getElementById('txtemail').value || 'N/A';
// 构建结构化 HTML 内容(避免直接复制 input 元素,防止重复交互)
const displayHTML = `
<h3>User Summary:</h3>
<p><strong>Full Name:</strong> ${fname} ${lname}</p>
<p><strong>Age:</strong> ${age}</p>
<p><strong>Email:</strong> ${email}</p>
`;
// 更新目标容器
document.getElementById('float-child2').innerHTML = displayHTML;
}⚠️ 关键注意事项:
- 不要用 innerHTML 复制整个 <div>:原代码 document.getElementById('float-child').innerHTML 会把所有 input 元素(含未填值)一并复制过去,导致新区域出现可编辑框,且按钮重复渲染,违背“只显示结果”的设计意图。
- 务必使用 .value 获取输入值:<input> 元素的内容存储在 value 属性中,而非 innerHTML。
- 添加空值兜底(|| 'N/A'):防止用户未填写时显示 undefined 或空白。
- CSS 清除浮动:.float-container 添加 overflow: hidden 或使用 ::after 伪元素清除浮动,确保父容器正确包裹子元素。
-
语义化与可维护性:建议将 onclick 事件从 HTML 中解耦,改用 addEventListener(如下),提升代码可读性与复用性:
document.getElementById('btnTransfer').addEventListener('click', onTransfer);
通过以上调整,即可用纯 HTML + CSS + JavaScript 实现安全、清晰、可维护的表单数据展示功能,无需任何第三方库。








