[英]How to save values chosen on slider to csv using JavaScript?
The final div of my code contains 5 sliders (I show here just 2) and a “finish” button.我的代码的最后一个 div 包含 5 个滑块(我在这里只显示 2 个)和一个“完成”按钮。 On click, I want to be able to:
点击后,我希望能够:
I can only use JS and HTML.我只能使用JS和HTML。
/// phase C //// var slider1 = document.getElementById("q1"); var demo1 = document.getElementById("demo1"); var vq1 = slider1.value; demo1.innerHTML = slider1.value; slider1.oninput = function() { demo1.innerHTML = this.value; } var slider2 = document.getElementById("q2"); var demo2 = document.getElementById("demo2"); var vq2 = slider2.value; demo2.innerHTML = slider2.value; slider2.oninput = function() { demo2.innerHTML = this.value; } function Phase_E_action() { document.getElementById("Phase_D").hidden = true; document.getElementById("Phase_E").hidden = false; var fileContent = vq1 + "," + vq2; var bb = new Blob([fileContent], { type: 'text/plain' }); var a = document.createElement('a'); a.downoload = "Exp" + Date().toString().slice(4, 24) + ".csv"; a.href = window.URL.createObjectURL(bb); a.click(); }
<div id="Phase_D"> <span class="v50_15"><h1>Please state your opinion on Bob</h1></span> <div class="slidecontainer"> <span class="v50_16"><p>On a scale from 0 to 100, when 0 means mean and ten means nice, how would you rate Bob?</p> <input type="range" min="1" max="100" value="50" class="slider" id="q1"> <p>Value: <span id="demo1"></span></p> </span> </div> <div class="slidecontainer"> <span class="v50_17"><p>On a scale from 0 to 100, when 0 means bad and ten means good, how would you rate Bob?</p> <input type="range" min="1" max="100" value="50" class="slider" id="q2"> <p>Value: <span id="demo2"></span></p> </span> </div> </div>
you need to put variable vq1, vq2
inside callback of input
event or call directly slider1.value
inside Phase_E_action()
function您需要将变量
vq1, vq2
放在input
事件的回调中或在Phase_E_action()
function 中直接调用slider1.value
and for download it need to append to the current page下载它需要 append 到当前页面
var vq1, vq2; var slider1 = document.getElementById("q1"); var demo1 = document.getElementById("demo1"); demo1.innerHTML = slider1.value; slider1.oninput = function() { // put the variable here vq1 = demo1.innerHTML = this.value; } var slider2 = document.getElementById("q2"); var demo2 = document.getElementById("demo2"); demo2.innerHTML = slider2.value; slider2.oninput = function() { vq2 = demo2.innerHTML = this.value; } function Phase_E_action() { var fileContent = vq1 + "," + vq2; console.log(fileContent) var bb = new Blob([fileContent], { type: 'text/plain' }); var a = document.createElement('a'); a.download = "Exp" + Date().toString().slice(4, 24) + ".csv"; a.href = window.URL.createObjectURL(bb); a.innerHTML = 'fff' document.body.appendChild(a) a.click(); document.body.removeChild(a); }
<div id="Phase_D"> <span class="v50_15"> <h1>Please state your opinion on Bob</h1> </span> <div class="slidecontainer"> <span class="v50_16"> <p>On a scale from 0 to 100, when 0 means mean and ten means nice, how would you rate Bob?</p> <input type="range" min="1" max="100" value="50" class="slider" id="q1"> <p>Value: <span id="demo1"></span></p> </span> </div> <div class="slidecontainer"> <span class="v50_17"> <p>On a scale from 0 to 100, when 0 means bad and ten means good, how would you rate Bob?</p> <input type="range" min="1" max="100" value="50" class="slider" id="q2"> <p>Value: <span id="demo2"></span></p> </span> </div> <button onclick="Phase_E_action()"> Download CSV </button>
note: you can't use download function here because the iframe is sanboxed and allow-downloads
flag is not set注意:您不能在此处使用下载 function,因为 iframe 已被加密并且未设置
allow-downloads
标志
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.