Javascript 如何导出表单数据
我是JS的新手,学习如何在点击特定表单的提交按钮时导出数据,我的代码如下:Javascript 如何导出表单数据,javascript,html,export,Javascript,Html,Export,我是JS的新手,学习如何在点击特定表单的提交按钮时导出数据,我的代码如下: var stockData = [ { Email:document.getElementById("email").value, Password: document.getElementById("pwd").value, Name: document.getElementById("name").value, }
var stockData = [
{
Email:document.getElementById("email").value,
Password: document.getElementById("pwd").value,
Name: document.getElementById("name").value,
}
];
function downloadCSV(args) {
var data, filename, link;
var csv = convertArrayOfObjectsToCSV({
data: stockData
});
if (csv == null) return;
filename = args.filename || 'export.csv';
if (!csv.match(/^data:text\/csv/i)) {
csv = 'data:text/csv;charset=utf-8,' + csv;
}
data = encodeURI(csv);
link = document.createElement('a');
link.setAttribute('href', data);
link.setAttribute('download', filename);
link.click();
}
但是,当我导出数据时,即使我在字段中输入值,我也总是为空。感谢您的帮助。这是因为您在加载js时获取字段值,而不是在用户单击按钮时获取字段值 请注意stockData变量声明。我把它移到了函数downloadcv 这是一个有效的解决方案 函数转换器arrayofobjectstocsvargs{ var结果、ctr、键、列分隔符、行分隔符、数据; data=args.data | | null; 如果data==null | |!data.length{ 返回null; } columnDelimiter=args.columnDelimiter | |','; lineDelimiter=args.lineDelimiter | |'\n'; keys=Object.keysdata[0]; 结果=; 结果+=keys.joincolumnDelimiter; 结果+=行分隔符; data.forEachfunctionitem{ ctr=0; keys.forEachfunctionkey{ 如果ctr>0结果+=列分隔符; 结果+=项目[关键]; ctr++; }; 结果+=行分隔符; }; 返回结果; } 函数下载csvargs{ var数据、文件名、链接; var stockData=[{ 电子邮件:document.getElementByIdemail.value, 密码:document.getElementByIdpwd.value, 名称:document.getElementByIdname.value, }]; var csv=convertArrayOfObjectsToCSV{ 数据:stockData }; 如果csv==null返回; filename=args.filename | |“export.csv”; 如果!csv.match/^data:text\/csv/i{ csv='数据:文本/csv;字符集=utf-8',+csv; } 数据=encodeURIcsv; link=document.createElement'a'; link.setAttribute'href',数据; setAttribute'download',文件名; link.click; } TestFormData 电邮: 密码: 姓名: 提交
你最好显示html表单,以帮助我们解决你的问题。有一个指向代码笔的链接