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>