Die Zeichenzahl ist bereits auf 300-500 beschränkt, jedoch soll den Proband*innen ihre aktuelle Zeichenzahl angezeigt werden, was ich nicht hinbekomme.
Ich habe den Code von soscisurvey, den man hier findet: https://www.soscisurvey.de/help/doku.php/de:create:questions:text genutzt, aber leider funktioniert es nicht. Die Angabe bleibt bei Aktuell haben Sie - Zeichen.
Den PHP Code habe ich unterhalb des Textfeldes bei "Fragebogen zusammenstellen" eingefügt. Auch die Kennung des Texteingabefelds müsste richtig sein, die Fragebogenkennung ist BB04 und das Textfeld selbst 01, also habe ich statt 'AB01_01' überall 'BB04_01' eingefügt. Ich komme leider seit Stunden nicht weiter, obwohl das so simpel erscheint. Weiß vielleicht jemand, woran es liegen könnte? Ich wäre so dankbar :)`
<!-- Seite 12 -->
<page intID="49">
<question id="TE02" intID="54" />
<question id="TE03" intID="47" />
<question id="BB04" intID="50" />
<php intID="52"><![CDATA[
text('jsCountChars', array(
'%text%' => 'BB04_01', // Hier die Kennung des Texteingabefelds eintragen
'%display%' => 'BB04_01chars', // Hier die Kennung des HTML-Elements zur Anzeige der Zeichen
'%limit%' => 500 // Hier ggf. die Anzahl erlaubter Zeichen, sonst 0
));
]]></php>
<question id="BB05" intID="51" />
</page>
HTML Code bei Textbausteine mit der Kennung "jsCountChars" und Darstellung "HTML Code"
<script type="text/javascript">
<!--
function addCounter(textID, displayID, limit) {
if (limit) {
limit = parseInt(limit);
}
var input = document.getElementById(textID);
if (!input) {
alert("Kein Texteingabefeld mit der Kennung " + textID + " gefunden");
return;
}
var display = document.getElementById(displayID);
if (!display) {
alert("Kein Element mit der Kennung " + displayID + " gefunden");
return;
}
// Funktion zum Zählen und Anzeigen des Wertes
function refresh() {
var s = input.value.replace(/\r\n/g, "\r").replace(/\r/g, "\n");
var res = s.length;
if (limit) {
res = limit - res;
}
// Inhalt des Anzeigeelements löschen
while (display.lastChild) {
display.removeChild(display.lastChild);
}
// Text zum Anzeigen
var cnt = document.createTextNode(res);
display.appendChild(cnt);
}
// Länge ggf. begrenzen
if (limit) {
SoSciTools.checkChars(textID, "", limit);
}
// Bei jeder Änderung des Textfelds aktualisieren
SoSciTools.attachEvent(input, ["change","keyup"], refresh);
// Beim Laden aktualisieren
refresh();
}
// Textfeld registrieren
addCounter("%text%", "%display%", "%limit%");
// -->
</script>
Referenz in der Anweisung zu dem Texteingabefeld:
You currently have <span id=“BB04_01chars”>-</span>
characters.