我正在最终确定使用大量JavaScript的Qualtrics调查的编码。不幸的是,对于我调查中最重要的问题,当问题不在调查中的第一位置时,JavaScript无效[编辑:不加载]。然而,我之前需要提出其他问题,因为此问题上显示的图表取决于之前的答案。
当问题位于调查中的第一个位置时,看到代码工作here是非常令人沮丧的(即使需要一些时间来加载数据,也可以看到5个带蓝条的图表 - 约15秒);但是当我将问题放在第二个位置时,图表不再显示there(为了看到没有图形,因此必须回答第一个问题,然后单击下一个按钮)。
仅供参考,我使用jQuery和一个绘图库:jChartFX。
有没有人知道可能导致这种情况的原因?
[编辑]:这是我的JavaScript代码(不包括加载库的标头)。它应该嵌入HTML的标题中:
Qualtrics.SurveyEngine.addOnload(function()
{
$j(document).ready(function($j){
$j.ajax({
url:'https://login.qualtrics.com/WRQualtricsControlPanel/File.php?F=F_6yFft59YgdvIHfT',
success: function(data){
var actuelle, rawlsien, utilitarien;
var donnees_rawlsien, donnees_actuelle, donnees_utilitarien;
var prefere, egalitaire, actuelle, rawlsien, utilitarien;
var donnees_prefere, donnees_egalitaire; //, donnees_rawlsien, donnees_actuelle, donnees_utilitarien;
var donnees = {"utilitarien":donnees_utilitarien,"rawlsien":donnees_rawlsien,"egalitaire":donnees_egalitaire,"actuelle":donnees_actuelle,"prefere":donnees_prefere};
prefere = new cfx.Chart();
actuelle = new cfx.Chart();
egalitaire = new cfx.Chart();
rawlsien = new cfx.Chart();
utilitarien = new cfx.Chart();
donnees_egalitaire = new Array(2);
donnees_egalitaire[0] = {x: 0, y: 1800}
donnees_egalitaire[1] = {x: 1, y: 1800}
donnees_prefere = new Array(2);
donnees_prefere[0] = {x: 0, y: 1800}
donnees_prefere[1] = {x: 1, y: 1800}
var out = charge(data);
donnees_actuelle = out[0];
donnees_utilitarien = out[1];
donnees_rawlsien = out[2];
draw(utilitarien,"utilitarien", donnees_utilitarien);
draw(rawlsien,"rawlsien", donnees_rawlsien);
draw(actuelle,"actuelle", donnees_actuelle);
draw(egalitaire,"egalitaire", donnees_egalitaire);
draw(prefere,"prefere", donnees_prefere);
},
error: function(){
alert('Fail of data loading: utilitarien');
donnees_utilitarien = new Array(2);
donnees_utilitarien[0] = {x: 0, y: 1800}
donnees_utilitarien[1] = {x: 1, revenu: 1800}
}
});
function charge(texte) {
var dat=texte;
var tab=dat.split('\n');
var donnees_actuelle = new Array(100);
var donnees_utilitarien = new Array(100);
var donnees_rawlsien = new Array(100);
for (var i = 0; i<10; i++) {
donnees_actuelle[i] = {x:i, y:parseInt(tab[0].split('\t')[0])}
donnees_utilitarien[i] = {x:i, y:parseInt(tab[0].split('\t')[1])}
donnees_rawlsien[i] = {x:i, y:parseInt(tab[0].split('\t')[2])}
} (...)
donnees_actuelle[99] = {x:i, y:parseInt(tab[7].split('\t')[0])}
donnees_utilitarien[99] = {x:i, y:parseInt(tab[7].split('\t')[1])}
donnees_rawlsien[99] = {x:i, y:parseInt(tab[7].split('\t')[2])}
var out = new Array(3);
out[0] = donnees_actuelle;
out[1] = donnees_utilitarien;
out[2] = donnees_rawlsien;
return out;
}
function draw(graph, name, donnees) {
graph.setGallery(cfx.Gallery.Bar);
graph.getAllSeries().setVolume(100);
var axeY = new cfx.FieldMap();
axeY.setName("y");
axeY.setUsage(cfx.FieldUsage.Value);
graph.getDataSourceSettings().getFields().add(axeY);
graph.setDataSource(donnees);
graph.getAxisY().setMax(12000);
graph.getAxisX().setVisible(false);
graph.getAxisY().setStep(1000);
graph.setBackColor('#00FFFFFF');
var titreX, titreY;
titreY = new cfx.TitleDockable();
titreY.setText("niveau de vie (€/mois)");
titreY.setTextColor("#57ACDA");
graph.getAxisY().setTitle(titreY);
graph.getLegendBox().setDock(cfx.DockArea.Top);
graph.getSeries().getItem(0).setText("Niveau de vie des français (en €/mois)");
graph.getSeries().getItem(0).setColor("#FF0000");
graph.getLegendBox().setTextColor("#FF0000");
graph.getLegendBox().setMarginX(250);
var divHolder = document.getElementById(name);
graph.create(divHolder);
}
});
});
答案 0 :(得分:0)
现在,由于Qualtrics支持的帮助,它运行正常。但是,我还没有理解导致问题的原因。它似乎现在有效,因为调查是分发的。该错误仅出现在预览模式中。