Welcome to the LimeSurvey Community Forum

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

Nascondere un campo commento in una domanda a Scelta multipla con commenti

  • AleCase
  • AleCase's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
5 years 6 months ago #173463 by AleCase
Ciao, vorrei nascondere uno dei campi testuali in una multiple choice with comment come nel jpeg che ho allegato.

Ho trovato nel forum in inglese la soluzione proposta da tpartner

tpartner wrote: Since the inclusion of Expression Manager we need to have a space or line-break after all opening curly braces and before all closing curly braces. (don't get me started on the whole "valid JavaScript" discussion again)

Code:
<script type="text/javascript" charset="utf-8">
 
  $(document).ready(function() { 
 
    var q1ID = 68;
    var msg = 'Please specify in the comment box.';
 
    // Hide the first 3 text inputs of Q1
    $('#question'+q1ID+' li[id^="javatbd"]:eq(0) .comment').hide();
    $('#question'+q1ID+' li[id^="javatbd"]:eq(1) .comment').hide();
    $('#question'+q1ID+' li[id^="javatbd"]:eq(2) .comment').hide();
 
    // Interrupt next/submit function 
    $('#movenextbtn, #movesubmitbtn').click(function(){
 
      // Reset some stuff
      var failedMandatory = 0;
      $('#question'+q1ID+' input.text').css({ 
        'background':'' 
      });
 
      // Loop through all check answers in Q1
      $('#question'+q1ID+' input.checkbox:checked').each(function(i){
 
        // Define the row
        var thisRow = $(this).parents('li:eq(0)');
 
        // Check for empty mandatory text inputs
        if($('input.text:visible', thisRow).length > 0 &amp;&amp; $('input.text', thisRow).val() == '') {
          $('input.text', thisRow).css({
            'background':'pink'
          });
          failedMandatory = 1;
        }
      });  
 
      // Abort submit if any mandatory text inputs are empty
      if(failedMandatory == 1) {
        alert (msg);
        return false;  
      }
      else {
        return true;  
      }
    });
  });
 
</script>




ma nel mio caso non nasconde nessun campo.
Ho provato a inserire il codice della mia domanda al posto di 68 ma cosa altro dovrei fare?
Grazie per l'aiuto
A.
The topic has been locked.
More
5 years 6 months ago #173512 by lfanfoni
Se hai il Filtro HTML per XSS abilitato, il codice javascript sulla domanda potrebbe non funzionare.
Sul post in italiano prima del tuo ( www.limesurvey.org/forum/italian-forum/116097-risposta-mista ) Joffm propone una soluzione più semplice di modifica del template.css, pero' devi vedere se è compatibile con la tua versione di Limesurvey.
In generale cerco di evitare la scrittura di javascript proprio per problemi di compatibilità delle versioni, e nel tuo caso si potrebbe evitare di scrivere uno script dividendo in due la domanda:
DOM1a: Al 31 dicembre il programma aderiva... (si/no)
DOM1b (solo se DOM1a=SI): A quale rete aderiva? (scelta multipla con commenti con le due sottodomande "Rete a livello nazionale" e "Rete a livello internazionale")

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
The following user(s) said Thank You: AleCase
The topic has been locked.
  • AleCase
  • AleCase's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
5 years 6 months ago #173614 by AleCase
Al solito grazie lfanfoni.
Purtroppo ho molte domande di questo tipo e diventerebbe troppo dispendioso per il rispondente dividere la domanda. Come faccio a sapere se ho il Filtro HTML per XSS abilitato?
Dove si modifica il template.css?, inserisco lo script nel campo Classe/i CSS: delle impostazioni avanzate?
di nuovo grazie
A.
The topic has been locked.
More
5 years 6 months ago #173643 by lfanfoni
Per verificare il filtro XSS devi andare sulle impostazioni globali della tua installazione Limesurvey (nelle versioni recenti: Configurazione/Impostazioni generali/Sicurezza). Il filtro XSS deve essere spento.
Comunque se non dici quale versione stai usando, è difficile poterti aiutare.

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
The following user(s) said Thank You: AleCase
The topic has been locked.
More
5 years 6 months ago #173652 by lfanfoni
E comunque il suggerimento di Joffm mi funziona anche nella versione 3.x. Devi andare nell'editor dei temi, copiarti o estendere uno dei temi standard, eppoi andare a modificare custom.css (lo trovi in basso a sinistra).
Devi aggiungere queste linee di istruzione:
#answer453274X197X3810SQ001comment {
display: none;
}
Dove:
453274 = ID del sondaggio
197 = ID del gruppo
3810 = ID del domanda
SQ001 = codice della sottodomanda

Devi aggiustare in base agli ID della tua survey (sono i numeri che trovi tra parentesi).

Anche cosi' secondo me fai prima a splittare in due la domanda. Ah: ricordati di rendere esclusiva la scelta del No

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
The topic has been locked.
  • AleCase
  • AleCase's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
5 years 6 months ago #174053 by AleCase
Buongiorno e grazie,
Sto usando la Versione 2.73.1
ho inserito nel codice sorgente
<style type="text/css">input#answer582587X1594X272813comment {
display: none;}
</style>

e ho messo esclusiva la scelta no
The topic has been locked.

Lime-years ahead

Online-surveys for every purse and purpose