JavaScript:无需服务器即可将 HTML 表单和复选框数据保存到 .txt 文件吗?

2024-05-01

我有一个带有文本和复选框输入的 HTML 表单,我想在提交表单时将此表单数据下载到文本文件中。

I 找到了从文本框下载数据的解决方案 https://stackoverflow.com/questions/13685263/can-i-save-input-from-form-to-txt-in-html-using-javascript-jquery-and-then-us到文本文件中,但我不知道如何修改它以获取我需要的附加文本和复选框输入。

这是我当前的代码:

<html>
    <head>
        <script language="Javascript">
            function download(filename, text) {
                var pom = document.createElement('a');
                pom.setAttribute('href', 'data:text/plain;charset=utf-8,' +
                    encodeURIComponent(Notes));
                pom.setAttribute('download', filename);
                pom.style.display = 'none';
                document.body.appendChild(pom);
                pom.click();
                document.body.removeChild(pom);
            }
            function addTextTXT() {
                document.addtext.name.value = document.addtext.name.value + ".txt"
            }
        </script>
    </head>
    <body>
        <form name="addtext" onsubmit="download(this['name'].value, this[’Notes’].value)">
            Notes:<input type="text" name=“Note/Users/karlahaiat/Desktop/Copia de checklist.htmls”><br>
            Initials:<input type="text" name=“Initials”><br>
            <input type="checkbox" name=“check_list[]” value=“Check General Health”>
            <b>Check General Health.</b><br>
            <input type="checkbox" name=“check_list[]” value=“Check Fluid”>
            <b>Check Fluid.</b><br>
            <input type="text" name="name" value="" placeholder="File Name">
            <input type="submit" onClick="addTexttxt();" value="Save As TXT">
        </form>
    </body>
</html>

上面的表单显示了我想要的表单中的输入字段,但是文本文件不会下载。任何帮助理解语法的帮助都会很棒!


您的代码非常接近有效的解决方案 - 考虑对您的代码进行以下更改(如下面的代码片段所示):

  • 避免混合"HTML 标记中的字符
  • 确保有效的字段名称并避免使用以下形式的 name 属性:name=“Note/Users/karlahaia..
  • 考虑使用addEventListener()将事件逻辑绑定到 HTML,而不是使用内联onclick, onsubmit等,就像你现在一样
  • 另外,考虑在页面加载后通过DOMContentLoaded事件。这可以确保脚本所依赖的表单和输入元素在脚本尝试访问它们之前就存在
/* Run script after DOMContentLoaded event to ensure form element is 
present */
document.addEventListener("DOMContentLoaded", function() {
  /* Obtain form element via querySelector */
  const form = document.querySelector('form[name="addtext"]');

  /* Bind listener to forms submit event */
  form.addEventListener("submit", function(event) {
    /* Prevent browsers default submit and page-reload behavior */
    event.preventDefault();

    /* Obtain values from each field in form */
    const notes = form.querySelector('input[name="notes"]').value;
    const initials = form.querySelector('input[name="initials"]').value;
    const checkFluid = form.querySelector('input[name="check-fluid"]').checked;
    const checkHealth = form.querySelector('input[name="check-health"]').checked;
    const filename = form.querySelector('input[name="name"]').value + ".txt";

    /* Compose text file content */
    const text = `
    notes:${notes}
    initials:${initials}
    check health (checkbox):${checkHealth}
    check fluid (checkbox):${checkFluid}
    `;

    /* Create temporary link element and trigger file download  */
    const link = document.createElement("a");
    const href = "data:text/plain;charset=utf-8," + encodeURIComponent(text);
    link.setAttribute("href", href);
    link.setAttribute("download", filename);

    document.body.appendChild(link);

    link.click();

    document.body.removeChild(link);
  });
});
<!-- Ensure that the name attribute does not include invalid characters 
or nested "" which cause confusion-->
<form name="addtext">
  Notes:<input type="text" name="notes" /><br /> Initials:

  <input type="text" name="initials" /><br />

  <input type="checkbox" name="check-health" value="Check General Health" />
  <b>Check General Health.</b><br />

  <input type="checkbox" name="check-fluid" value="Check Fluid" />
  <b>Check Fluid.</b><br />

  <input type="text" name="name" value="" placeholder="File Name" />
  <input type="submit" value="Save As TXT" />
</form>

希望有帮助!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JavaScript:无需服务器即可将 HTML 表单和复选框数据保存到 .txt 文件吗? 的相关文章

  • 如何格式化 Highcharts 的 (x,y) 对数据的日期时间

    我的序列化方法会产生如下所示的日期时间字符串 2014 07 09T12 30 41Z 为什么下面的代码不起作用 function container highcharts xAxis type datetime series data x
  • 如何针对 Node.js 中发生的每个错误发送电子邮件?

    假设我的 node js 应用程序正在运行 如果出现错误 我的意思是所有错误 不仅仅是网络错误 如果出现错误 则很重要 我如何调用函数向我发送电子邮件 基本上 在我希望它写入 err out 之前 我希望向我发送一封电子邮件 我正在使用no
  • Bootstrap按钮加载+Ajax

    我正在使用 Twitter Bootstrap 的按钮加载状态 http twitter github com bootstrap javascript html buttons http twitter github com bootst
  • 有没有办法使用 Rspec/Capybara/Selenium 将 javascript console.errors 打印到终端?

    当我运行 rspec 时 是否可以让 capybara selenium 向 rspec 报告任何 javascript console errors 和其他异常 我有一大堆测试失败 但当我手动测试它时 我的应用程序正在运行 如果不知道仅在
  • 调整图像大小并将画布旋转 90 度

    这里有很多关于在 js 上使用画布旋转图像的主题 我阅读了其中的大部分内容 但无法找到解决我的问题的方法 我正在接收任何分辨率的图像 来自上传组件 我将其大小调整为 1024x768 如下所示 var canvas document cre
  • Jquery 数据表列总和

    我只是参考一下这个链接 https datatables net examples advanced init footer callback html了解如何获取 jquery 数据表中的列总计 但我已经完成了一半的项目 我在html页面
  • 尝试将数据存储在点击器网站中

    我正在尝试存储一个名为的变量score无论何时刷新 您都会一次又一次地使用它 我不明白的是它的代码是什么 我尝试了一些方法 但似乎都不起作用 这是我的答题器网站 但是当我尝试使用 JavaScript 来存储它时 它不起作用window o
  • Javascript split 不是一个函数

    嘿朋友们 我正在使用 javascript sdk 通过 jQuery facebook 多朋友选择器在用户朋友墙上发布信息 但是我收到此错误friendId split 不是函数 这是我的代码 function recommendToFr
  • 检查 jQuery 1.7 中是否存在基于文本的选择选项

    所以我有以下 HTML 片段
  • 有没有办法在 onclick 触发时禁用 iPad/iPhone 上的闪烁/闪烁?

    所以我有一个有 onclick 事件的区域 在常规浏览器上单击时 它不会显示任何视觉变化 但在 iPad iPhone 上单击时 它会闪烁 闪烁 有什么办法可以阻止它在 iPad iPhone 上执行此操作吗 这是一个与我正在做的类似的示例
  • Firebase 函数 onWrite 未被调用

    我正在尝试使用 Firebase 函数实现一个触发器 该触发器会复制数据库中的一些数据 我想观看所有添加的内容votes user vote 结构为 我尝试的代码是 const functions require firebase func
  • 从数据库检查数据的异步解决方案各种循环子句

    我想要做的是异步检查数据库并从中获取结果 在我的应用程序中我试图实现Asynchronously将此步骤解决为 从数据库中检查手机号码JsonArray循环子句的种类 Create JsonArray从结果 打印创建的数组 我学到了足够多的
  • 日期出现奇怪的错误,“未捕获非法访问”

    所以我试图找到最新的DateJavascript 可以处理 我把它减少到 9 月 275760 并增加了我开始捕获未捕获的天数illegal access例外new Date 09 24 275760 to new Date 10 13 2
  • 如何创建适合屏幕宽度的等宽/高框? [复制]

    这个问题在这里已经有答案了 我正在尝试建立一个网站 其中有很多宽度和高度相等的框 例如 我有一个页面 其中并排有两个相同大小的框 简单的解决方案是将宽度和高度设置为 50vw 这在出现滚动条之前效果很好 我已经用谷歌搜索了几个小时 但无法理
  • 使用 Vue 的多模式组件

    我在 Vue 中实现动态模式组件时遇到问题 A common approach I follow to display a set of data fetched from the db is I dump each of the rows
  • 在 HTML 下拉列表中有一个滚动条

    我正在寻找一种在 HTML 的下拉列表中添加滚动条的方法 这样如果下拉列表包含的内容超过例如 5 项 将出现滚动条以查看其余项 这是因为我将被迫列出一些大清单 过去几个小时我一直在谷歌上搜索它 但没有运气 它需要适用于 IE8 FF 和 C
  • 表格行未扩展到全宽

    我有一个表格 当我将表格的宽度设置为 100 并将表格行的宽度设置为 100 时 没有任何反应或宽度发生变化 Table Normal position relative display block margin 10px auto pad
  • 从 FileReader 设置背景图像样式

    我正在寻找一种解决方案 允许我从文件上传输入中获取文件并通过设置 document body style backgroundImage 来预览它 以下代码用于在 Image 元素中显示预览 function setImage id tar
  • 如何在执行新操作时取消先前操作的执行?

    我有一个动作创建器 它会进行昂贵的计算 并在每次用户输入内容时调度一个动作 基本上是实时更新 但是 如果用户输入多个内容 我不希望之前昂贵的计算完全运行 理想情况下 我希望能够取消执行先前的计算并只执行当前的计算 没有内置功能可以取消Pro
  • CSS溢出文本显示在几行中,没有断字

    我有一些长文本显示在 div 中 该 div 具有固定的宽度和高度 我希望文本显示在几行上 作为 div 高度 并且句子单词不会中断 一行中的单词前缀和下一行中的继续 此外 我想在末尾添加省略号最后一句话 CSS white space n

随机推荐

  • 量角器元素(..)从单独的文件返回未定义

    我正在编写一个 Protractor 测试 在我的 test step js 文件中我有 element by css getText then function text expect text to equal expectedText
  • 如何在 Lua 中实现 OO?

    Lua 没有内置对 OO 的支持 但它允许您自己构建它 您能否分享一些实现面向对象的方法 请为每个答案写一个例子 如果您有更多示例 请发布另一个答案 我喜欢将 OOP 视为容器 对象 内的数据封装以及可以使用该数据完成的操作子集 还有很多内
  • Gstreamer、rtspsrc 和负载类型

    我在从特定摄像头检索 rtsp 流时遇到困难 因为摄像头提供的 rtp 有效负载类型是 35 未分配 并且该摄像头接受的有效负载类型rtph264德佩插件的范围是 96 127 结果是 gstreamer 显示如下错误
  • IAM 允许用户访问某个区域上 ec2 的所有内容

    我试图允许一个用户对 us west 2 执行所有操作 这是我的政策 Version 2012 10 17 Statement Effect Allow Action ec2 Resource arn aws ec2 us west 2 8
  • 在谷歌应用程序引擎中使用低级 API 进行数据存储?是不是很糟糕?

    关于如何使用数据存储的低级 api 的文档很少 而关于 JPA 和 JDO 以及如何转换为 JPA 和 JDO 的文档却很多 我的问题是 根据 JPA 或 JDO 规范进行编码而不是直接访问数据存储的低级 api 有什么优势吗 乍一看 这似
  • 拒绝访问 .htaccess 中的 .ini 文件是否安全?

    我的 php Web 应用程序中有一个包含敏感信息的 ini 文件 我使用 htaccess 文件拒绝访问它
  • 将 NSTextAttachment 图像置于单行 UILabel 旁边

    我想附加一个NSTextAttachment图像到我的属性字符串并使其垂直居中 我使用以下代码来创建我的字符串 NSMutableAttributedString str NSMutableAttributedString alloc in
  • OAuth:从 Google App Engine 中启动 Google 计算实例

    我有一个 Google App Engine 网络应用程序 它运行着我网站的大部分内容 然而 对于某些功能 我需要一台linux机器 我希望我的 Google App Engine 应用程序能够在某些事件上自动启动 Google 计算实例
  • 如何在android系统状态栏中显示文本

    我正在尝试为 Android Nougat 开发一个应用程序 我想在从 android 服务例程生成的状态栏中显示一些信息 文本 所以我的问题是 我不知道如何在状态栏中显示文本 我添加了一个示例图像来显示我的确切含义 红色圆圈 我知道这是可
  • 路由器基本名称无法匹配 URL,因为它不是以基本名称开头

    升级到 React Router v6 后 我的应用程序停止工作 并且我未能找到在版本 6 中实现相同行为的方法 这是我升级到的版本 react router dom 6 2 1 这是与先前版本一起使用的代码5 2 0
  • JAVA FXCollections LoadException 类不是有效类型

    我正在尝试在此帮助下实现带有一些数据的 TableViewTutorial https docs oracle com javafx 2 fxml get started fxml tutorial intermediate htm CIA
  • 在 github 推送上将静态站点部署到 s3 的最佳策略? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我想自动将我们的网站部署到 AWS S3 我已经编写了一个节点脚本来自动构建和上传网站 但我希望每当m
  • 有谁知道这是怎么做到的? SQL注入

    由于许多其他网站已被攻击 我不得不假设它是一个机器人 它注入了一个脚本 昨天 http google stats50 info ur php Today http google stats49 info ur php 它将它注入到多个表中
  • 阈值绝对值

    我有以下功能 char f1 int a unsigned b return abs a lt b 为了执行速度 我想重写如下 char f2 int a unsigned b return unsigned a b lt 2 b redu
  • 如何用C语言查找桌面路径?

    谁能告诉我如何使用 C 语言命令获取桌面路径 环境变量 场景是我想在桌面上保存一个文件 我所能做的就是给出一个固定的桌面路径和一个文件名来保存文件 但是在给出这个固定路径之后 我的代码将变得僵化 并且无法在具有不同桌面路径 环境变量 的任何
  • “ef migrations add”始终在新迁移中重新创建外键

    我安装了 RC1 和 VS 2015 update 1 每当我尝试添加新的迁移时 都会在 Up 方法中重新创建同一组外键 这意味着它们被删除然后直接添加 例如 当我添加迁移而不更改任何模型时 会生成该迁移 当然 Down 方法中也会生成类似
  • 没有确认提示的自定义 URL 方案 (Swift)

    我发现有两个选项可以从 Safari 网页打开我的应用程序 在我的应用程序项目中创建的自定义 URL 方案Info plist或苹果的通用链接 显然 自定义 URL 方案是最容易设置的方案 但我遇到的问题是 Safari 会显示一个确认窗口
  • 客户端使用高端口号

    为什么客户端会结束连接 使用高端口号 临时端口 而应用程序 监听通常较小的端口号 谢谢你的优点 卡蒂克 巴拉古鲁 服务器侦听固定端口号 以便客户端知道连接到哪里 客户端不需要使用固定端口号 因为没有人发起与它们的连接 事实上 如果同一台计算
  • 在 Android 中实现 Signal R

    我尝试过以下方式 import java util concurrent ExecutionException import microsoft aspnet signalr client LogLevel import microsoft
  • JavaScript:无需服务器即可将 HTML 表单和复选框数据保存到 .txt 文件吗?

    我有一个带有文本和复选框输入的 HTML 表单 我想在提交表单时将此表单数据下载到文本文件中 I 找到了从文本框下载数据的解决方案 https stackoverflow com questions 13685263 can i save