Welcome to the LimeSurvey Community Forum

Ask the community, share ideas, and connect with other LimeSurvey users!

Assegnare valore ad una risposta tramite javascript

More
14 hours 23 minutes ago #273759 by gigall
Per favore aiutaci ad aiutarti e compila dove necessario:
La tua versione di LimeSurvey: LimeSurvey Community Edition, Version 5.4.13+221128
Server proprio o LimeSurvey Cloud: Cloud
Tema:
==================
Cari esperti di LimeSurvey,

 All'inizio di un mio questionario ho una serie di domande che decidono chi partecipa solamente a una prima parte del questionario o chi risponde all'intero questionario. In pratica in base alle risposte viene calcolato se il partecipante può continuare o meno. Per fare ciò ho scritto il seguente script (dentro la scheda "script" di una domanda chiamata "redirect").
Code:
$(document).ready(function() {
    function add(accumulator, val) {
        var numericVal = Number(val);
        var logicValue = (numericVal === 0) ? 1 : 0;
        return accumulator + logicValue;
    }
 
    // Valid total count to be redirected to Part 2;
    var n_valid = 5;
 
    // Valid conditions. False evaluate to 0 and true to 1.
    // Since we have only 5 true conditions, the sum when all
    // the choices are valid must be equal to n_valid;
    var valid = [
        1 - Number("{SCR01.NAOK>=18}"),       // True;
        1 - Number("{SCR01.NAOK<=80}"),       // True;
        strcmp("{SCR03.NAOK}", "Y"),          // True;
        strcmp("{SCR05.NAOK}", "AO01"),       // True;
        strcmp("{SCR08.NAOK}", "AO01")        // True;
    ];
 
    var invalid = [
        strcmp("{SCR02.NAOK}", "AO01"),
        strcmp("{SCR02.NAOK}", "AO02"),
        strcmp("{SCR031.NAOK}", "AO01"),
        strcmp("{SCR031.NAOK}", "AO02"),
        strcmp("{SCR032.NAOK}", "AO01"),
        strcmp("{SCR032.NAOK}", "AO02"),
        strcmp("{SCR033.NAOK}", "AO01"),
        strcmp("{SCR033.NAOK}", "AO02"),
        strcmp("{SCR06_SQ002.NAOK}", "AO04"),
        strcmp("{SCR06_SQ002.NAOK}", "AO05"),
        strcmp("{SCR06_SQ003.NAOK}", "AO04"),
        strcmp("{SCR06_SQ003.NAOK}", "AO05"),
        strcmp("{SCR06_SQ004.NAOK}", "AO04"),
        strcmp("{SCR06_SQ004.NAOK}", "AO05"),
        strcmp("{SCR06_SQ006.NAOK}", "AO04"),
        strcmp("{SCR06_SQ006.NAOK}", "AO05"),
        strcmp("{SCR06_SQ007.NAOK}", "AO04"),
        strcmp("{SCR06_SQ007.NAOK}", "AO05")
    ];
 
    const valid_count = valid.reduce(add, 0);
    const invalid_count = invalid.reduce(add, 0);
    console.log(valid_count);
    console.log(invalid_count);
 
    if (valid_count === n_valid){ 
        if (invalid_count === 0) {
            console.log("Validated - User meets all criteria.");
        }
    }
    else {
        console.log("Validation Failed - User does not meet criteria.");
    }
});

è possibile assegnare a una domanda nascosta (ad esempio una domanda Y/N, chiamata "validation") un valore che codifica il fatto che il partecipante debba continuare o meno? (ad esempio, se l'if è vero, a "validation" viene assegnato un valore "Y", altrimenti un valore "N"). Questo mi servirebbe per fare in modo che le domande della seconda parte possano essere scartate in base al valore assegnato dallo script e che il partecipante vada direttamenta alla schermata di fine questionario in caso validation sia "N".

Please Log in to join the conversation.

More
7 hours 19 minutes ago #273760 by lfanfoni
Qualcuno ti potrà aiutare con il Javascript, ma io ti suggerisco di usare esclusivamente le domande di tipo Equazione (nascoste) per definire il calcolo in base alle risposte fornite, e di usare le equazioni di rilevanza a livello di gruppo di domande, per mostrare o nascondere le domande in base al valore della domanda Equazione di cui sopra.
Per tutte queste operazione, suggerisco lo studio dell'Expression Manager sul Manuale

Se mi vuoi contattare, non mandare messaggi privati qui, bensì scrivi a lfanfoni at gmail.com
Per le livestream in italiano vai su: www.youtube.com/playlist?list=PLOSjjxAG9...SiiCsSz_JxIH7xJwLdPd
Le soluzioni LimeSurvey per l'Italia si trovano su: github.com/lfanfoni

Please Log in to join the conversation.

Moderators: lfanfoniholchtpartner

Lime-years ahead

Online-surveys for every purse and purpose