Qualtrics Drag-and-Drop: разрешение только одного элемента в корзине

Я пытался использовать типы вопросов «Выбор», «Группа» и «Рейтинг» и «Матричная таблица» (последний с функцией перетаскивания), чтобы заставить респондентов в опросе Qualtrics перетаскивать только один элемент из списка. 10 в каждое из 10 ведер.

К сожалению, хотя я, конечно, могу настроить проверку таким образом, чтобы респондент не мог щелкнуть на следующей странице, если только он не назначил только один элемент для каждой корзины/группы, по-прежнему возможно случайно поместить один элемент в корзину или группу, ошибка, и иногда может быть трудно увидеть это или даже получить элемент из ведра (последняя проблема, в частности, для типов вопросов «Выбор», «Группа» и «Рейтинг»). Мы думаем, что то, что у нас есть прямо сейчас, позволяет легко запутать людей, поскольку мы установили высоту «групп» PGR (сегментов) достаточно большой, чтобы «визуально» помещался только один элемент, но теоретически вы можете может продолжать сбрасывать туда вещи, перекрывая другие группы внизу экрана.

Поэтому я просто хочу иметь какой-то код Javascript или jQuery, который по существу отменит «перетаскивание» элемента в ведра/группы, в которых уже есть один элемент. Этот вопрос (перетаскивание jQuery - разрешить только один элемент в списке) показался особенно актуальным, но по какой-то причине это не сработало для меня (если это действительно работает в Qualtrics, то мне бы хотелось получить хотя бы небольшое руководство о том, как заставить его работать на меня) . Спасибо!




Ответы (1)


На самом деле выяснил, как заставить это работать для моего опроса. Он берет прямо из ссылки, которую я разместил выше (jQuery drag и drop - Разрешить только один элемент в списке), так что вся заслуга принадлежит решению. Если кто-то пытается адаптировать его и для Qualtrics, см. ниже, где вы, конечно же, заменяете селектор на нужные вам сегменты (т. е. вместо #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');
    }
});
});

});
person RRTG    schedule 19.06.2018