fix: harden twenty four game submissions
This commit is contained in:
@@ -143,6 +143,13 @@
|
||||
input.placeholder = "例如:6 / (1 - 3 / 4)";
|
||||
input.autocomplete = "off";
|
||||
input.inputMode = "text";
|
||||
input.spellcheck = false;
|
||||
const errorMessage = document.createElement("p");
|
||||
errorMessage.className = "form-error game-form-error";
|
||||
errorMessage.setAttribute("role", "alert");
|
||||
input.addEventListener("input", () => {
|
||||
errorMessage.textContent = "";
|
||||
});
|
||||
const keypad = document.createElement("div");
|
||||
keypad.className = "game-keypad";
|
||||
["+", "-", "*", "/", "(", ")"].forEach((operator) => {
|
||||
@@ -159,10 +166,11 @@
|
||||
submit.className = "primary-button";
|
||||
submit.type = "submit";
|
||||
submit.textContent = "验证并计分";
|
||||
form.append(input, keypad, submit);
|
||||
form.append(input, keypad, errorMessage, submit);
|
||||
form.addEventListener("submit", async (event) => {
|
||||
event.preventDefault();
|
||||
submit.disabled = true;
|
||||
errorMessage.textContent = "";
|
||||
try {
|
||||
const result = await api(
|
||||
`contests/games/attempts/${attempt.attempt_id}/submit/`,
|
||||
@@ -175,6 +183,7 @@
|
||||
renderTwentyFour(result);
|
||||
showToast("得到 24,成绩已记录");
|
||||
} catch (error) {
|
||||
errorMessage.textContent = error.message;
|
||||
showToast(error.message);
|
||||
submit.disabled = false;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user