Selezione singola su colonna

 

Compatibilità: IdSurvey 6 IdSurvey 7

Questo javascript può essere usato in griglie con domande a scelta singola per obbligare una selezione singola su colonna, ovvero se desideri che il valore di ciascuna colonna venga selezionato solo una volta nell’intera griglia.

Nota

  • Questo script funziona solamente con griglie semplici a selezione singola.
  • Il numero di righe e colonne della griglia deve essere lo stesso.
  • È possibile rendere l’intera domanda opzionale (ad esempio, se hai 6 item ma vuoi che vengano indicati solo i primi 3 per preferenza) cliccando sul pulsante ingranaggio della domanda e selezionando l’opzione “Rendi tutto non obbligatorio”.

Istruzioni

Incolla lo script nella casella “Client script” che trovi nel bottone ingranaggio della pagina.

<script>

  $(function(){
    var isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) && $(window).width() <= 800; var isMobileBrowser = (typeof _customCheckMobileBrowser == "function") ? _customCheckMobileBrowser() : isMobile; if(isMobileBrowser){ $(".survey-page-wrapper #page .group-question-sub-elements > .sub-elements-wrapper :radio").on("change", function(){
        var main = $(this).closest(".main-responses");        
        var li = $(this).closest("li");
        var index = main.find("li").index(li);
        var currentRadio = $(this).closest(".sub-elements-wrapper");

        $(".survey-page-wrapper .group-question-sub-elements > .sub-elements-wrapper .sub-elements-wrapper").each(function(){
          if(!$(this).is(currentRadio)){
            if($(this).find(".main-responses").find("li").eq(index).find(":radio").prop("checked") == true)
              $(this).find(".main-responses").find("li").eq(index).find(":radio").prop("checked", false);
          }
        });

      });
    }else{
      $(".grid-question-table :radio").on("change", function(){
        var table = $(this).closest("table");
        var tr = $(this).closest("tr");
        var index = tr.find(":radio").index($(this));
        table.find("tr").not(tr).each(function(){
          if($(this).find(":radio").eq(index).prop("checked") == true)
            $(this).find(":radio").prop("checked", false);
        });
      });
    }
  });
</script>

Leave A Comment?