Qualtrics Drag-and-Drop:每桶只允许一个项目

时间:2018-06-17 02:42:05

标签: javascript drag-and-drop jquery-ui-draggable jquery-ui-droppable qualtrics

我尝试同时使用Pick,Group和Rank以及Matrix Table问题类型(后者带有拖放功能)让Qualtrics调查的受访者只需拖动一个将10个项目分成10个桶中的每一个。

不幸的是,虽然我当然可以设置验证,使受访者无法点击下一页,除非他们只为每个桶/组分配了一个项目,但仍然可能意外地将一个项目放入桶中或一个错误的组,有时可能很难看到甚至将项目从桶中取出(特别是Pick,Group和Rank问题类型的最后一个问题)。所以我们现在所想的就是让人很容易混淆,因为我们已经将PGR“组”(桶)的高度设置得足够大,只有一个项目符合“视觉”,但理论上你可以继续丢弃内容,与屏幕上的其他组重叠。

所以我只想拥有某种Javascript或jQuery代码,这些代码基本上取消了将项目“删除”到已经有一个项目的存储桶/组中。这个问题(jQuery drag and drop - Allow only one item in list)似乎特别相关,但由于某些原因它不适用于我(如果它确实在Qualtrics中起作用,那么我甚至会喜欢关于如何使其工作的一些指导我)。谢谢!

1 个答案:

答案 0 :(得分:0)

实际上弄清楚了如何使这项工作适用于我的调查。它直接来自我上面发布的链接(jQuery drag and drop - Allow only one item in list),因此所有功劳都归功于该解决方案。如果有人也在尝试使其适应Qualtrics,请参见下文,您当然可以在其中替换所需存储桶的选择器(即,用相关的问题ID代替#QID8group0)。

Qualtrics.SurveyEngine.addOnload(function()
{
/*Place your JavaScript here to run when the page loads*/   
jQuery(function() {
jQuery("ul.droptrue").sortable({
    connectWith: "ul",
});

jQuery("ul.dropfalse").sortable({
    connectWith: "ul",
    dropOnEmpty: false
});

jQuery("#QID8group0,#QID8group1, #QID8group2, #QID8group3, #QID8group4, #QID8group5, #QID8group6,#QID8group7,#QID8group8,#QID8group9").disableSelection();

 jQuery("#QID8group0,#QID8group1, #QID8group2, #QID8group3, #QID8group4, #QID8group5, #QID8group6,#QID8group7,#QID8group8,#QID8group9").on("sortreceive", function(event, ui) {
    var jQuerylist = jQuery(this);

    if (jQuerylist.children().length > 1) {
        jQuery(ui.sender).sortable('cancel');
    }
});
});

});