Welcome to the LimeSurvey Community Forum

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

Automatisch Weiter klicken bzw. Weiter Button einblenden führt zu Fehlern

  • Teerex
  • Teerex's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
2 weeks 3 days ago - 2 weeks 3 days ago #265074 by Teerex
Bitte helfen Sie uns, Ihnen zu helfen und füllen Sie folgende Felder aus:
Ihre LimeSurvey-Version: 6.5.9
Eigener Server oder LimeSurvey-Cloud: Eigener Server
Genutzte Designvorlage: Sea Green
==================
Guten Tag, 
ich versuche auf meinem LimeSurvey Server eine Prüfung zu implementieren, ob eine bestimmte Benutzereingabe valide ist. Dazu sende ich eine Anfrage an ein php Script, welche entweder valid:true oder false zurück gibt. Dies funktioniert auch. Problematisch wird es nun im Fragebogen. Zuerst ist der "Weiter" Button ausgeblendet. Ich möchte, dass der Benutzer dann seine Antwort eingibt und auf "Check" klickt. Wenn die Prüfung erfolgreich ist, soll entweder direkt zur nächsten Frage navigiert werden oder aber der "Weiter" Button wird automatisch betätigt. Was von beidem passiert ist grundsätzlich egal, problematisch ist nur, dass beides nicht klappt. Blende ich den Button ein, so verschwindet dieser nach einer Millisekunde wieder. Nutze ich die Lösung des automatischen Klickens, so sagt mir ein Popup, dass ich bitte nicht die Browsernavigation verwenden soll. "Bitte nutzen Sie die Umfrage-Navigation. Es scheint, als hätten Sie versucht den Browser zum Navigieren zu benutzen."
Ich nutze dafür diesen Codeteil:
$('#ls-button-submit').show()
$('#ls-button-submit').show().trigger('click');
Wo genau liegt hier jeweils das Problem? Ich habe mich am Tutorial von Joffm orientiert und gehe daher davon aus, dass mein Code korrekt sein sollte.

<meta charset="UTF-8">
<title></title>
<script src=" code.jquery.com/jquery-3.6.0.min.js ">
<style type="text/css">.questionhelp {
            display: none;
        }
</style>
<h1>Welcome to "SurveyName"</h1>

<p>Please enter your answer:</p>
<input id="answerInput" type="text" /><button id="checkButton">Check</button> <script>
        $(document).ready(function() {
            var answerInput = $('#answerInput');
            var $checkButton = $('#checkButton');

           $('#ls-button-submit').hide();

            answerInput.on('keypress', function(event) {
                if (event.which === 13) {
                    event.preventDefault();
                    $checkButton.click();
                }
            });

            $checkButton.on('click', function() {
                var accessCode = answerInput.val();
                var checkUrl = '/limesurvey/index.php/accessKey/check?access_key=' + encodeURIComponent(accessCode);

                $.getJSON(checkUrl, function(response) {
                    if (response.valid) {
                      $('#ls-button-submit').show()
                      $('#ls-button-submit').show().trigger('click');
                    } else {
                        alert('The answer is invalid.');
                    }
                }).fail(function() {
                    alert('Error verifying the answer.');
                });
            });
        });
    </script>
Last edit: 2 weeks 3 days ago by Teerex. Reason: Probleme mit der Codedarstellung

Please Log in to join the conversation.

  • Joffm
  • Joffm's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
2 weeks 3 days ago #265088 by Joffm
Hallo,
tja, was sollen wir sagen?
Vermutlich ist es eine "Textanzeige", oder?

Okay, wenn ich jetzt den unnötigen Aufruf von "jquery" weglasse (ist doch bereits enthalten)
und auch den uns unbekannten Aufruf der Funktion, also einfach ein paar Variablen einsetze, mit WAHR und FALSCH (richtige bzw. falsche Antwort) jongliere, dann funktioniert es.

Also, viel ist im Moment (noch) nicht zu sagen.

Joffm

Und das steht aber nicht im Tutorial

$('#ls-button-submit').show()
$('#ls-button-submit').show().trigger('click');

Eins davon ist sicher auskommentiert. Zweimal "show()" wäre ja überflüssig.
Sollte ja nur zeigen, dass ich entweder den Button nur zeigen oder aber auch direkt weitergehen kann.

 

Volunteers are not paid.
Not because they are worthless, but because they are priceless

Please Log in to join the conversation.

Moderators: Joffm

Lime-years ahead

Online-surveys for every purse and purpose