Qualtrics API在放入自定义JavaScript时无法正常工作

时间:2016-01-19 21:52:00

标签: javascript qualtrics

我正在进行一项实验,其中一项河内塔游戏嵌入在一项调查中。游戏用Javascript编程并放入问题的javascript环境中。

我希望在参与者解决问题之前禁用提交。我把this.disableNextButton()放在javascript中并且它有效。但是这个。 enableNextButton()在脚本中放入后面的逻辑函数是不行的。

    Qualtrics.SurveyEngine.addOnload(function()
    {
        /*Place Your Javascript Below This Line*/

    this.disableNextButton();

    Game.prototype.handleDrop = function(event, ui) {
    var tower = this.getTower(jQuery(event.target));
    var disk = this.getDisk(ui.draggable);


    if (tower.getNum() != disk.getTower().getNum()) {

    if (tower.canPlaceDisk(disk)) {
        disk.setDraggableRevert(false);
        tower.moveDisk(disk);
        disk.position();
        this.moves++;
        jQuery("#moves").text(this.moves);
        this.updateDraggableDisks();
        this.checkSolved();

    }
}
    }

    Game.prototype.checkSolved = function() {
if ((this.towers[1].getDisks().length==0) && (this.towers[2].getDisks().length==1) && (this.towers[2].getDisks()[0].getNum()==1)) {

     this.enableNextButton();
    alert("Problem Solved.");
    Qualtrics.SurveyEngine.setEmbeddedData("P1.1",this.moves); /*this sentence must be inside the function, otherwise it will be evluated before the function.*/

    return (this.moves);
    jQuery("#startOver").click();
    }

    }

    });

这是否与"这"宾语?因为在逻辑功能中,"这个"表示我定义的对象而不是Qualtrics测量引擎。如果是,我该怎么做才能启用enbaleNextButton函数?

非常感谢您的帮助!

达尼

1 个答案:

答案 0 :(得分:1)

我不确定这是你的问题(实际上我认为不是),但你可以替换:

this.enableNextButton();

使用:

$('NextButton').show();

同样,您可以替换:

this.disableNextButton();

使用:

$('NextButton').hide();

如果您查看Qualtrics函数的代码,您会看到它们只是执行上面的命令。

编辑:安东尼指出这是为了隐藏/显示而不是禁用/启用。禁用和启用将是:

$('NextButton').disabled = true;
$('NextButton').disabled = false;