如何用JavaScript在另一个页面打印用户表单输入内容?
实现表单提交内容在另一个页面展示的解决方案
1. 完善表单代码
先补全不完整的表单结构,确保能正常提交输入内容:
<form action="action_page.html" method="GET"> <div> <label for="fname">First name:</label> <br> <input type="text" id="fname" name="fname"><br><br> <button type="submit">提交</button> </div> </form>
注:修正了label的for属性,使其与输入框的id匹配,保证表单语义正确。
2. 修正action_page.html的展示代码
现有JS代码存在三个核心问题:缺少承载结果的DOM容器、模板字符串语法错误、直接追加字符串的方式不规范,以下是修正后的完整代码:
方案一:使用DOM节点操作
<!DOCTYPE html> <html> <body> <!-- 新增结果展示容器 --> <div id="result"></div> <script> const resultsContainer = document.getElementById('result'); // 解析URL中的GET参数 new URLSearchParams(window.location.search).forEach((value, name) => { // 创建文本节点存储键值对 const textNode = document.createTextNode(`${name}: ${value}`); resultsContainer.appendChild(textNode); // 添加换行元素 resultsContainer.appendChild(document.createElement('br')); }); </script> </body> </html>
方案二:使用innerHTML拼接(更简洁)
<!DOCTYPE html> <html> <body> <div id="result"></div> <script> const resultsContainer = document.getElementById('result'); let displayContent = ''; new URLSearchParams(window.location.search).forEach((value, name) => { displayContent += `${name}: ${value}<br>`; }); resultsContainer.innerHTML = displayContent; </script> </body> </html>
关键修正说明
- 必须在
action_page.html中添加id="result"的DOM容器,否则JS无法获取到结果展示的载体 - 模板字符串必须用**反引号(
)**包裹,才能正确解析${name}和${value}`变量,单引号会将其当作普通文本输出 - 避免直接用
append方法追加字符串,采用DOM节点操作或innerHTML的方式更规范、兼容性更好
内容的提问来源于stack exchange,提问作者DEL MUNDO LENARD ANTHONY G.
相关产品推荐
相关产品推荐

