使用 Javascript 创建 .txt
Create .txt using Javascript
我正在尝试使用 JavaScript 创建一个 .txt
这有效:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script type="text/javascript">
$("form").each(function() {
$(this)
})
var textarea = document.querySelector('textarea'); // document.querySelector => Get the first element in the document with tag textarea
var anchor = document.querySelector('a');
anchor.onclick = function() {
anchor.href = 'data:text/plain;charset=utf-8,' + encodeURIComponent(textarea.value);
anchor.download = 'export.txt';
};
</script>
<h2>PHP Form Validation Example</h2>
<form>
Name: <input type="text" name="name">
<br><br>
E-mail: <input type="text" name="email">
<br><br>
Web: <input type="text" name="website">
<br><br>
Kom: <textarea name="comment" rows="5" cols="40"></textarea>
<br><br>
G:
<input type="radio" name="gender" value="w">w
<input type="radio" name="gender" value="m">m
<br><br>
<input type="submit" name="submit" value="Submit">
<textarea></textarea>
<p><a href="#">Export</a></p>
</form>
浏览器下载一个 .txt 文件,其中包含用户输入字段的数据。
但是如果我尝试这样做,下载的 .txt 文件结果会显示未知。
var input = document.getElementsByTagName("input");
var anchor = document.querySelector('a');
anchor.onclick = function() {
anchor.href = 'data:text/plain;charset=utf-8,' + encodeURIComponent(input.value);
anchor.download = 'export.txt';
};
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<h2>PHP Form Validation Example</h2>
<form>
Name: <input type="text" name="name">
<br><br>
E-mail: <input type="text" name="email">
<br><br>
Web: <input type="text" name="website">
<br><br>
Kom: <textarea name="comment" rows="5" cols="40"></textarea>
<br><br>
G:
<input type="radio" name="gender" value="w">w
<input type="radio" name="gender" value="m">m
<br><br>
<input type="submit" name="submit" value="Submit">
<textarea></textarea>
<p><a href="#">Export</a></p>
</form>
document.querySelector
return 是 select 的第一个元素,如果 none(单数)则为空。只要找到一个元素访问它的值 属性 就可以。
document.getElementsByTyName
returns 具有提供的标签名称(复数)的元素数组。数组没有 属性 值,因此 return 值将为 undefined
。反过来,您的文本文件应包含类似 "undefined" 的内容。
要 select 所有文本输入并连接它们的值,您可以使用类似的东西:
var textInputs = document.querySelectorAll("input[type=text], textarea");
var values = [];
for (var i = 0; i < textInputs.length; i++) {
values.push(textInputs[0].value)
}
console.log(values.toString())
document.getElementsByTagName
将 return 列出您所有的输入,包括单选按钮和提交按钮。因此,您应该遍历它们或 select 数组中的单个元素。
使用 document.querySelectorAll
因为您指定要循环的 input
类型。 getElementsByTagName()
return 所有输入,包括提交按钮,它 return 是一个数组,所以你需要遍历它。
var inputs = $("input[type=text], textarea");
var anchor = document.querySelector('a');
anchor.onclick = function() {
var content = '';
inputs.each(function(){
content += ' '+ $(this).val();
});
anchor.href = 'data:text/plain;charset=utf-8,' + encodeURIComponent(content);
anchor.download = 'export.txt';
};
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<h2>PHP Form Validation Example</h2>
<form>
Name: <input type="text" name="name">
<br><br>
E-mail: <input type="text" name="email">
<br><br>
Web: <input type="text" name="website">
<br><br>
Kom: <textarea name="comment" rows="5" cols="40"></textarea>
<br><br>
G:
<input type="radio" name="gender" value="w">w
<input type="radio" name="gender" value="m">m
<br><br>
<input type="submit" name="submit" value="Submit">
<textarea></textarea>
<p><a href="#">Export</a></p>
</form>
我正在尝试使用 JavaScript 创建一个 .txt
这有效:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script type="text/javascript">
$("form").each(function() {
$(this)
})
var textarea = document.querySelector('textarea'); // document.querySelector => Get the first element in the document with tag textarea
var anchor = document.querySelector('a');
anchor.onclick = function() {
anchor.href = 'data:text/plain;charset=utf-8,' + encodeURIComponent(textarea.value);
anchor.download = 'export.txt';
};
</script>
<h2>PHP Form Validation Example</h2>
<form>
Name: <input type="text" name="name">
<br><br>
E-mail: <input type="text" name="email">
<br><br>
Web: <input type="text" name="website">
<br><br>
Kom: <textarea name="comment" rows="5" cols="40"></textarea>
<br><br>
G:
<input type="radio" name="gender" value="w">w
<input type="radio" name="gender" value="m">m
<br><br>
<input type="submit" name="submit" value="Submit">
<textarea></textarea>
<p><a href="#">Export</a></p>
</form>
浏览器下载一个 .txt 文件,其中包含用户输入字段的数据。
但是如果我尝试这样做,下载的 .txt 文件结果会显示未知。
var input = document.getElementsByTagName("input");
var anchor = document.querySelector('a');
anchor.onclick = function() {
anchor.href = 'data:text/plain;charset=utf-8,' + encodeURIComponent(input.value);
anchor.download = 'export.txt';
};
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<h2>PHP Form Validation Example</h2>
<form>
Name: <input type="text" name="name">
<br><br>
E-mail: <input type="text" name="email">
<br><br>
Web: <input type="text" name="website">
<br><br>
Kom: <textarea name="comment" rows="5" cols="40"></textarea>
<br><br>
G:
<input type="radio" name="gender" value="w">w
<input type="radio" name="gender" value="m">m
<br><br>
<input type="submit" name="submit" value="Submit">
<textarea></textarea>
<p><a href="#">Export</a></p>
</form>
document.querySelector
return 是 select 的第一个元素,如果 none(单数)则为空。只要找到一个元素访问它的值 属性 就可以。
document.getElementsByTyName
returns 具有提供的标签名称(复数)的元素数组。数组没有 属性 值,因此 return 值将为 undefined
。反过来,您的文本文件应包含类似 "undefined" 的内容。
要 select 所有文本输入并连接它们的值,您可以使用类似的东西:
var textInputs = document.querySelectorAll("input[type=text], textarea");
var values = [];
for (var i = 0; i < textInputs.length; i++) {
values.push(textInputs[0].value)
}
console.log(values.toString())
document.getElementsByTagName
将 return 列出您所有的输入,包括单选按钮和提交按钮。因此,您应该遍历它们或 select 数组中的单个元素。
使用 document.querySelectorAll
因为您指定要循环的 input
类型。 getElementsByTagName()
return 所有输入,包括提交按钮,它 return 是一个数组,所以你需要遍历它。
var inputs = $("input[type=text], textarea");
var anchor = document.querySelector('a');
anchor.onclick = function() {
var content = '';
inputs.each(function(){
content += ' '+ $(this).val();
});
anchor.href = 'data:text/plain;charset=utf-8,' + encodeURIComponent(content);
anchor.download = 'export.txt';
};
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<h2>PHP Form Validation Example</h2>
<form>
Name: <input type="text" name="name">
<br><br>
E-mail: <input type="text" name="email">
<br><br>
Web: <input type="text" name="website">
<br><br>
Kom: <textarea name="comment" rows="5" cols="40"></textarea>
<br><br>
G:
<input type="radio" name="gender" value="w">w
<input type="radio" name="gender" value="m">m
<br><br>
<input type="submit" name="submit" value="Submit">
<textarea></textarea>
<p><a href="#">Export</a></p>
</form>