从下拉列表生成 .txt 文件
Generate .txt files from drop down list
其实这对于懂html编程的人来说是一件容易的事,可惜我不是这个领域的...
想问一下如何在html文件同目录下创建一个可以生成.txt的html文件。在这种情况下,我想将该文本用于电气家庭自动化。
我需要 2 个包含 2 个选项列表的下拉列表
第一个称为 'LAMP' 并包含 2 个选项:“ON
”和“OFF
”
第二个称为 'BLOWER',还包含:“ON
”和“OFF
”
我还需要一个按钮。按下按钮时,此 html 根据选择的选项生成 .txt
个文件。
查看截图看我的界面说明
如果按下生成的按钮,它将像这样
示例:
如果 LAMP 开启且 BLOWER 关闭则生成文件中的文本应为“10
”
如果 LAMP 关闭且 BLOWER 打开,则生成文件中的文本应为“01”
有人可以帮我 .html
代码吗?
谢谢
您可以利用 select
元素,a
元素和 download
属性,href
设置文本文件的 data URI
表示。
var select = document.querySelector("select");
select.addEventListener("change", function(e) {
var text = e.target.value === "LAMP" ? "10" : "01";
var file = "data:text/plain," + text;
var a = document.createElement("a");
a.download = e.target.value + "-" + new Date().getTime();
a.href = file;
document.body.appendChild(a);
a.onclick = function() {
this.parentElement.removeChild(this)
};
a.click();
})
<label for="select">Please select an option:</label>
<select id="select">
<option></option>
<option value="LAMP">LAMP</option>
<option value="BLOWER">BLOWER</option>
</select>
我从@guest271314上面的回答中复制了部分下载内容。感谢他。我相信你想要这样的东西:
JSFIDDLE 示例 LINK: https://jsfiddle.net/zpp4hr21/
更新:
完整的 html 文件代码根据 OP 的评论将是:
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<script src="https://code.jquery.com/jquery-2.2.2.min.js"></script>
<script type="text/javascript">
$("#generate").on("click", function(e){
var lamp = $("#lamp").val();
var blower = $("#blower").val();
if (lamp == "Select") {
alert("Please select a value for LAMP");
}
if (blower == "Select") {
alert("Please select a value for BLOWER");
}
if ((lamp != "Select") && (blower != "Select")) {
var text = lamp.toString()+blower.toString();
var file = "data:text/plain," + text;
var a = document.createElement("a");
a.download = e.target.value + "-" + new Date().getTime();
a.href = file;
document.body.appendChild(a);
a.onclick = function() {
this.parentElement.removeChild(this)
};
a.click();
}
});
</script>
</head>
<body>
<label for="lamp">LAMP:</label>
<select id="lamp">
<option>Select</option>
<option value="1">ON</option>
<option value="0">OFF</option>
</select>
<br/>
<label for="blower">BLOWER:</label>
<select id="blower">
<option>Select</option>
<option value="1">ON</option>
<option value="0">OFF</option>
</select>
<br/>
<input type="button" id="generate" value="GENERATE">
</body>
</html>
其实这对于懂html编程的人来说是一件容易的事,可惜我不是这个领域的...
想问一下如何在html文件同目录下创建一个可以生成.txt的html文件。在这种情况下,我想将该文本用于电气家庭自动化。
我需要 2 个包含 2 个选项列表的下拉列表
第一个称为 'LAMP' 并包含 2 个选项:“ON
”和“OFF
”
第二个称为 'BLOWER',还包含:“ON
”和“OFF
”
我还需要一个按钮。按下按钮时,此 html 根据选择的选项生成 .txt
个文件。
查看截图看我的界面说明
如果按下生成的按钮,它将像这样
示例:
如果 LAMP 开启且 BLOWER 关闭则生成文件中的文本应为“10
”
如果 LAMP 关闭且 BLOWER 打开,则生成文件中的文本应为“01”
有人可以帮我 .html
代码吗?
谢谢
您可以利用 select
元素,a
元素和 download
属性,href
设置文本文件的 data URI
表示。
var select = document.querySelector("select");
select.addEventListener("change", function(e) {
var text = e.target.value === "LAMP" ? "10" : "01";
var file = "data:text/plain," + text;
var a = document.createElement("a");
a.download = e.target.value + "-" + new Date().getTime();
a.href = file;
document.body.appendChild(a);
a.onclick = function() {
this.parentElement.removeChild(this)
};
a.click();
})
<label for="select">Please select an option:</label>
<select id="select">
<option></option>
<option value="LAMP">LAMP</option>
<option value="BLOWER">BLOWER</option>
</select>
我从@guest271314上面的回答中复制了部分下载内容。感谢他。我相信你想要这样的东西:
JSFIDDLE 示例 LINK: https://jsfiddle.net/zpp4hr21/
更新:
完整的 html 文件代码根据 OP 的评论将是:
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<script src="https://code.jquery.com/jquery-2.2.2.min.js"></script>
<script type="text/javascript">
$("#generate").on("click", function(e){
var lamp = $("#lamp").val();
var blower = $("#blower").val();
if (lamp == "Select") {
alert("Please select a value for LAMP");
}
if (blower == "Select") {
alert("Please select a value for BLOWER");
}
if ((lamp != "Select") && (blower != "Select")) {
var text = lamp.toString()+blower.toString();
var file = "data:text/plain," + text;
var a = document.createElement("a");
a.download = e.target.value + "-" + new Date().getTime();
a.href = file;
document.body.appendChild(a);
a.onclick = function() {
this.parentElement.removeChild(this)
};
a.click();
}
});
</script>
</head>
<body>
<label for="lamp">LAMP:</label>
<select id="lamp">
<option>Select</option>
<option value="1">ON</option>
<option value="0">OFF</option>
</select>
<br/>
<label for="blower">BLOWER:</label>
<select id="blower">
<option>Select</option>
<option value="1">ON</option>
<option value="0">OFF</option>
</select>
<br/>
<input type="button" id="generate" value="GENERATE">
</body>
</html>