Extracting data from custom two-knob slider | XM Community
Skip to main content
I am trying to modify some custom code for a two-knob slider (found here) so that I can set embedded data from the 2 points that are selected with the knobs. I have 'Q1_min' and 'Q1_max" set as blank embedded data fields in my survey flow, but I can't get this code to write anything to those embedded data fields. I am very inexperienced with javascript, so any help (especially with explicit explanation) is much appreciated. Here is what I have so far: Qualtrics.SurveyEngine.addOnload(function() { var surface; var cnst = 1; var min; var max; // Sets the sliders parameters and starting values $("#research-slider").slider({ id: "research-slider", min: 0, max: 100, range: true, value: [0, 100]}); // variable to store in surface area when user has stopped sliding var surface, currentResponse; $("#research-slider").on("slideStop", function(slideEvt) { surface = slideEvt.value; document.getElementById("minimum").innerHTML = surface[0]; document.getElementById("maximum").innerHTML = surface[1]; document.getElementById("range").innerHTML = (surface[1]- surface[0])/cnst ; min = surface[0]; max = surface[1]; }); Qualtrics.SurveyEngine.setEmbeddedData( 'Q1_min', min); Qualtrics.SurveyEngine.setEmbeddedData( 'Q1_max', max); $('NextButton').onclick = function (event) { // and now run the event that the normal next button is supposed to do Qualtrics.SurveyEngine.navClick(event, 'NextButton') } })
Update the code as below: Qualtrics.SurveyEngine.addOnload(function() { var surface; var cnst = 1; var min; var max; // Sets the sliders parameters and starting values $("#research-slider").slider({ id: "research-slider", min: 0, max: 100, range: true, value: [0, 100]}); // variable to store in surface area when user has stopped sliding var surface, currentResponse; $("#research-slider").on("slideStop", function(slideEvt) { surface = slideEvt.value; document.getElementById("minimum").innerHTML = surface[0]; document.getElementById("maximum").innerHTML = surface[1]; document.getElementById("range").innerHTML = (surface[1]- surface[0])/cnst ; min = surface[0]; max = surface[1]; Qualtrics.SurveyEngine.setEmbeddedData( 'Q1_min', min); Qualtrics.SurveyEngine.setEmbeddedData( 'Q1_max', max); }); $('NextButton').onclick = function (event) { // and now run the event that the normal next button is supposed to do Qualtrics.SurveyEngine.navClick(event, 'NextButton') } });