Willkommen im Online-Support von SoSci Survey.

Hier bekommen Sie schnelle und fundierte Antworten von anderen Projektleitern und direkt von SoSci Survey.

→ Eine Frage stellen


Welcome to the SoSci Survey online support.

Simply ask a question to quickly get answers from other professionals, and directly from SoSci Survey.

→ Ask a Question

0 votes

Ich habe ein Multilevel-Design. Im untergeordneten Fragebogen wird der Weiter-Knopf unter der Instruktion für eine gewisse Zeit mit JavaScript deaktiviert. Das soll jedoch nur bei dem ersten Durchgang des untergeordneten Fragebogens so sein. Der jeweilige Durchgang ist in $index hinterlegt.

<script type="text/javascript">

window.addEventListener("load", function() {
    document.getElementById("submit0").disabled = true;
});

window.setTimeout(function () {
      document.getElementById("submit0").disabled = false;
  }, 15000);
</script>

Wie lässt sich ein if-Befehl mit der $index-Variable und JavaScript umsetzen?

Pseudo-Code:

if($index === 0){
    <script type="text/javascript">
    
    window.addEventListener("load", function() {
        document.getElementById("submit0").disabled = true;
    });
    
    window.setTimeout(function () {
          document.getElementById("submit0").disabled = false;
      }, 15000);
    </script>
}
in SoSci Survey (dt.) by s079684 (480 points)
Das funktioniert nicht, da auch beim ersten Durchgang der Button direkt aktiviert wird:
<script type="text/javascript">
var index = "<?php echo $index ?>";
if(index==0){
window.addEventListener("load", function() {
    document.getElementById("submit0").disabled = true;
});
}
window.setTimeout(function () {
      document.getElementById("submit0").disabled = false;
  }, 15000);
</script>

Beim Debuggen wird mir mit alert(index); das hier als string angezeigt "<?php echo $index ?>"

1 Answer

0 votes

Packen Sie den JavaScipt-Code bitte einfach in einen Textbaustein (Darstellung "HTML-Code") und binden Sie diesen per Filter ein oder eben nicht:

if ($index == 0) {
  text('JS01');
}

Ds Script wird erst beim Nutzer im Browser ausgeführt - Ihr Filter muss schon beim Erstellen der Seite auf dem Server greifen. Deshalb lässt sich das nicht so einfach mischen.

by SoSci Survey (190k points)
Danke! Elegante Lösung
...