diff --git a/src/views/messageArea.ts b/src/views/messageArea.ts index 135c393..0a6a196 100644 --- a/src/views/messageArea.ts +++ b/src/views/messageArea.ts @@ -1209,13 +1209,20 @@ export function getMessageAreaScript(): string { const inputName = \`q\${qIndex}\`; const selectedAnswers = savedAnswers[qIndex] || []; - const optionsHtml = q.options.map(opt => { - const isSelected = selectedAnswers.includes(opt); - return \`\`; - }).join(''); + // 如果没有选项,显示文本输入框 + let optionsHtml; + if (!q.options || q.options.length === 0) { + const savedText = selectedAnswers[0] || ''; + optionsHtml = \`\`; + } else { + optionsHtml = q.options.map(opt => { + const isSelected = selectedAnswers.includes(opt); + return \`\`; + }).join(''); + } return \`
@@ -1238,8 +1245,15 @@ export function getMessageAreaScript(): string { submitBtn.addEventListener('click', function() { const answers = {}; questions.forEach((q, qIndex) => { - const inputs = segmentDiv.querySelectorAll(\`input[name="q\${qIndex}"]:checked\`); - answers[qIndex] = Array.from(inputs).map(input => input.value); + // 检查是否是文本输入框 + const textarea = segmentDiv.querySelector(\`textarea[name="q\${qIndex}"]\`); + if (textarea) { + const value = textarea.value.trim(); + answers[qIndex] = value ? [value] : []; + } else { + const inputs = segmentDiv.querySelectorAll(\`input[name="q\${qIndex}"]:checked\`); + answers[qIndex] = Array.from(inputs).map(input => input.value); + } }); handleMultiQuestionAnswer(segment.askId, answers, segmentDiv); });