diff --git a/packages/ui-default/pages/problem_detail.page.jsx b/packages/ui-default/pages/problem_detail.page.jsx
index 59bfedbb2..0bc137ab8 100644
--- a/packages/ui-default/pages/problem_detail.page.jsx
+++ b/packages/ui-default/pages/problem_detail.page.jsx
@@ -2,7 +2,7 @@ import { getScoreColor } from '@hydrooj/utils/lib/status';
import $ from 'jquery';
import yaml from 'js-yaml';
import React from 'react';
-import { createRoot } from 'react-dom/client';
+import ReactDOM from 'react-dom/client';
import Notification from 'vj/components/notification';
import { downloadProblemSet } from 'vj/components/zipDownloader';
import { NamedPage } from 'vj/misc/Page';
@@ -186,6 +186,7 @@ const page = new NamedPage(['problem_detail', 'contest_detail_problem', 'homewor
async function loadObjective() {
$('.outer-loader-container').show();
const ans = {};
+ const pids = [];
let cnt = 0;
const reg = /{{ (input|select|multiselect|textarea)\(\d+(-\d+)?\) }}/g;
$('.problem-content .typo').children().each((i, e) => {
@@ -196,15 +197,16 @@ const page = new NamedPage(['problem_detail', 'contest_detail_problem', 'homewor
for (const [info, type] of questions) {
cnt++;
const id = info.replace(/{{ (input|select|multiselect|textarea)\((\d+(-\d+)?)\) }}/, '$2');
+ pids.push(id);
if (type === 'input') {
$(e).html($(e).html().replace(info, tpl`
-
+
`));
} else if (type === 'textarea') {
$(e).html($(e).html().replace(info, tpl`
-
+
`));
@@ -216,7 +218,7 @@ const page = new NamedPage(['problem_detail', 'contest_detail_problem', 'homewor
$(e).html($(e).html().replace(info, ''));
$(e).next('ul').children().each((j, ele) => {
$(ele).after(tpl`
-