Formular nicht bei Klick auf Eingabetaste auslesen
Verfasst: Mittwoch 24. Juli 2024, 16:27
Bei meinem Rechentrainer genügt der Klick auf die Entertaste, um das Ergebnis zu kontrollieren.
Beim Rechenduell soll das unterbunden werden. Hier wird eine Aufgabe erstellt und zwei Kandidaten ausgelost. Hier soll das Ergebnis erst übermittelt werden, wenn auf den Namen eines/r Duellanten/in geklickt wird. Die Anzeige sieht zurzeit noch so aus:

Oben im Eingabefenster wird der vom schnellsten Kandidaten angegebene Wert eingegeben, und dann erst beim Klick auf den entsprechenden Namen ausgewertet. Wenn die Eingabe richtig ist, bekommt er/sie einen Punkt, wenn nicht einen halben Punkt Abzug. Ich muss also das Eingabefeld auslesen und die ID des/der Kandidaten/in übergeben. Der entsprechende Ausschnitt des Templates sieht so aus:
Im Internet habe ich diesen Teil innerhalb von <scrip> und </script> gefunden - das funktioniert nicht. Ich bin nicht sicher, ob das am Namen "document.getElementById('eingabe')" liegt. Im Objektinspektor wird "eingabe" als Namen angezeigt.
Beim Rechenduell soll das unterbunden werden. Hier wird eine Aufgabe erstellt und zwei Kandidaten ausgelost. Hier soll das Ergebnis erst übermittelt werden, wenn auf den Namen eines/r Duellanten/in geklickt wird. Die Anzeige sieht zurzeit noch so aus:

Oben im Eingabefenster wird der vom schnellsten Kandidaten angegebene Wert eingegeben, und dann erst beim Klick auf den entsprechenden Namen ausgewertet. Wenn die Eingabe richtig ist, bekommt er/sie einen Punkt, wenn nicht einen halben Punkt Abzug. Ich muss also das Eingabefeld auslesen und die ID des/der Kandidaten/in übergeben. Der entsprechende Ausschnitt des Templates sieht so aus:
Code: Alles auswählen
...
<form action="{% url 'duell_kontrolle' gruppe_id kategorie.slug %}" method="post">
{% csrf_token %}
<fieldset>
{{frage}}
{{form.eingabe}}
{{einheit}}
<p></p>
<table>
<table>
<tr>
<td><input type="submit" id="Eins" name = "duellant" value={{duellant_1.name}} class = {{duellant_1.liga}} ></td>
<td>{{duellant_1.punkte_spiel}}</td>
...
</tr>
<tr>
<td><input type="submit" value="gleich schnell" style = "background-color: #FFDEAD;"></td></tr>
<tr>
<td><input type="submit" id="Zwei" name = "duellant" value={{duellant_2.name}} class = {{duellant_2.liga}} ></td>
<td>{{duellant_2.punkte_spiel}}</td>
...
</tr>
</table>
</table>
</fieldset>
</form>
<script>
document.getElementById('eingabe').addEventListener('keypress', function(event) {
if (event.keyCode == 13) {
event.preventDefault();
}
});
</script>
<p></p>
<table>
<tr><td>
<button type="button">
<a style= "font-weight: bold;" href="{% url 'duell_aufgabe' gruppe_id kategorie.slug %}">nächste Aufgabe</a>
</button>
</td>
<td style ="background-color: #FFB5C5;">Zeit</td>
<td>
<button type="button">
<a href="{% url 'duell_uebersicht' gruppe_id %}">Abbrechen</a>
</button>
</td></tr>
...
</table>